爬虫案例-明朝那些事儿
三月份到四月初花了很长的时间看了一本小说—《明朝那些事儿》,几乎一整个月的时间都在看,越看越入迷,这就是小说的魅力吧。
故事从朱元璋的乞讨要饭开始,经过不断地残酷战争,击败各种对手,建立了明朝;再到后来燕王朱棣起兵造反,接着戚继光抗击倭寇;后来又有明朝出现了最有名的内阁首辅大臣—张居正,大刀阔斧地进行改革,明朝进入鼎盛时期;最后清朝入关,明朝还是败在了崇祯的手上,准确的说是:注定会败在他的手上。正如文中写到的那样:
嗟尔明朝,气数已尽
书讲述的不仅仅是历史,权利、希望、痛苦、气节、孤独、残暴、邪恶、忍耐、坚持、真理、忠诚……在书中样样都有。在书的最后,作者写了一首诗,摘录在这里:
1 | 当蜘蛛网无情地查封了我的炉台 |
爬取小说
数据来源
本文介绍的如何使用Python爬取一个网站上关于这本书的部分章节。
爬取主链接:https://www.kanunu8.com/files/chinese/201102/1777.html
爬取内容
1、章节标题
2、章节正文内容
以第一章为例:我们点击“第一章 童年”可以进入第一章的正文部分。
爬取结果
看看最终爬取到的数据。在本地目录下生成的一个文件夹:《明朝那些事儿》下面就有我们爬取到的33个章节的内容,包含前言和引子部分。
爬取相关库
在本次爬虫中使用到的相关库
1 | from multiprocessing.dummy import Pool # 伪多进程,加快爬取速度 |
爬取流程图
网页分析
分析一下网页的规律
1 | # 主页面:https://www.kanunu8.com/files/chinese/201102/1777.html |
发现了规律:每个章节的页面都有自己的URL后缀加以区分。看下网页源码找出URL地址:
上面已经发现了每个章节的URL地址的后缀
源代码
正则写的不太好,地址还需要切片一次
1 | import requests |
正则切片问题
首页源码返回内容解析的结果:
1 | url = 'https://www.kanunu8.com/files/chinese/201102/1777.html' |
切片之后的有效URL地址: