栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬取入门 |《鹿鼎记》小说很好看,请笑纳

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬取入门 |《鹿鼎记》小说很好看,请笑纳

目录

效果展示 

开发工具

讲解部分

一、分析网站

二、解析网页

三、保存到本地


最近被隔离疯了,没啥事看了看号称“猴戏”的新版鹿鼎记,感觉智商受到了侮辱,赶紧缓一缓,我决定看一下原版小说《鹿鼎记》。转念一想,买原版书太贵了,在线看电子书也麻烦,干脆就写个爬虫把《鹿鼎记》爬下来吧!

说干就干!

 

效果展示 

开发工具

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也就是获取的网页源代码中按照(.*?)的规则匹配,提取其中的(.*?)对应的内容,有人解析网页的时候喜欢用parsel模块,我以前也用过,后来长时间不用,现在已经忘记了,还是用re吧,简单方便。

之后需要获取正文的网页源代码,并且对这个网页源代码进行解析。也是用正则表达式进行匹配。匹配的规则依据网页的格式确定。

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学习路线跟资料,比较适合新手,戳下面名片找小助理领取

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号