目录
效果展示
开发工具
讲解部分
一、分析网站
二、解析网页
三、保存到本地
最近被隔离疯了,没啥事看了看号称“猴戏”的新版鹿鼎记,感觉智商受到了侮辱,赶紧缓一缓,我决定看一下原版小说《鹿鼎记》。转念一想,买原版书太贵了,在线看电子书也麻烦,干脆就写个爬虫把《鹿鼎记》爬下来吧!
说干就干!
效果展示
开发工具
pycharm2019
第三方库:re,requests
讲解部分
以前写过爬取科幻小说的爬虫。可以参考往期推荐。那个爬虫大概是在一两年以前写的,不知道现在还能不能用。不多说了,看一看今天写的这个爬虫吧!
一、分析网站
既然是要爬取网站的信息,首先要做的就是分析这个网站,我们选择的网站是“努努书坊”。网址如下
https://www.kanunu8.com/files/writer/188.html
随后在网站中选择鹿鼎记,从网页中可以看到,鹿鼎记的页面内,首先是鹿鼎记的目录,从第一回到第第50回,以及后面的后记之类的。
每个目录相当于一个网址,点进去以后就是正文。
我们需要做的就是将标题和正文全部保存到本地的txt文件中。
二、解析网页
然后需要做的就是自动获取网页源代码,首先要获取目录所在网页的源代码。用到的方法是requests。先导入requests。
代码是这样的
import requests
然后获取当前这个网址的网页源代码,并且将这个网页源代码的编码格式自动调整为可以识别的格式。
url0='https://www.kanunu8.com/wuxia/201102/'response=requests.get('https://www.kanunu8.com/wuxia/201102/1624.html')response.encoding=response.apparent_encoding
用requests.get()或获取当前这个网址的源代码。
response.encoding=response.apparent_encoding
而apparent_encoding可以调整源代码的编码格式。
之后,需要解析当前获取的网页源代码,可以用正则匹配的方法,在网页源代码中将《鹿鼎记》的标题全部提取出来,保存在一个列表里面。
正则匹配的规则如下
title2=re.findall('(.*?) ',response.text)
用到的是re模块里面的findall方法。从response.text也就是获取的网页源代码中按照
之后需要获取正文的网页源代码,并且对这个网页源代码进行解析。也是用正则表达式进行匹配。匹配的规则依据网页的格式确定。
text1 = re.findall(' (.*?)
', response1.text)
三、保存到本地
之前讲的是如何获取一个目录和正文,而真正下载到本地需要写入到txt文件中,
先用小说目录的名称新建一个txt文件,然后将这个文件打开成f,在其中写入获取到的正文。
f=open(title_now+'.txt',mode='w',encoding='utf-8')
每次写完以后,都将这个txt文件关闭掉
f.write(the_novel) f.close()
用for循环遍历所有的目录以及目录下的网页,按照同样的方法用正则表达式匹配。然后将匹配得到的字符,也就是写入到新建的txt中,写完以后将txt关闭。继续爬取下一个,
这样就可以按照顺序爬取下一个。下面是爬取保存的正文。
尾声感兴趣的朋友可以先点个收藏+关注,之后有这样的爬虫小例子也可以分享给大家,我这里也整理了一套Python学习路线跟资料,比较适合新手,戳下面名片找小助理领取



