爬取小说钓趣实例(一)
看大家对网络爬虫兴趣不高,那就让我做一个有钩的姜太公,来钓一钓大鱼。
接下来讲一讲如何爬取一部小说,因为爬取网页要掌握很多预备知识,可能你掌握的知识不够,没关系,钓趣吗?就当先看看怎么写爬虫。
本人还是比较喜欢推理小说的,所以在一个网站上找到了东野圭吾的作品集,然后我们的目的就是爬取他的一部比较著名的小说《白夜行》。
我的思路是这样的:
- 先观察这个小说的内容,比如有多少章,每一张有多少页;
- 观看网页的源代码,查看小说的主要内容结构;
- 分析源代码,构思怎么爬取我想要的内容;
- 构思爬虫程序,选择使用什么爬虫库、爬虫数据分析库等;
- 如何保存爬取到的信息。
有了这样的思路,我们该做的第一件事就是分析网页了,所以先看看这个小说的结构,其根路径地址https://www.yooread.net/3/3309/,访问一下,如图:
小说《白夜行》共13章,但是第一章、第十二章和第十三章又分上下两章,所以总的来说应该是16章。
既然知道总共16章,那看看每一章有多少页,看一下第一章(上):
通过对这三个url的简单分析,可以看出来每章第一页的url以数字.html
结尾,第二页以数字_2.html
结尾,第三页以数字_3.html
结尾,剩下的以此类推。
现在看一下第一章(下)的第一页:
细心点可以发现它的url地址以147592.html
结束,第一章(上)的url地址以147591.html
结尾,所以,我们发现了一点规律:
- 每一章的第一页的地址以
数字.html
的形式结尾,然后从第二页开始的url以数字_i.html
结尾,其中i
就是本章小说对应的页数; - 每一章的第一页的地址中
数字部分
是连续的,第一章(上)的数字是147591
,第一章(下)的数字是147592
,之后的类推。
然后我们看一下源码,就看第一章(上)的第一页的源码:
这里源代码中有很多内容,但是我们想要的只有两个,第一个是这个网页是第几章的内容,第二个是这个网页有多少段小说文本。可以看到这两个内容分别在标签<h1>title</h1>
之中和标签<p>content</p>
之中。
所有的爬取前准备工作都搞完了,接下来要想一想用什么工具爬取和怎么爬取了,下回讲。
喜欢python的朋友可以关注微信公众号“与C同行”,学习更多知识: