python爬取“科幻小说”

python讨论qq群:996113038


导语

前几天爬取过“唐诗三百首”,发现阅读量不是很高,可能是因为这个爬虫太简单了,仅仅十多行代码就完成了。确实,这个爬虫很简单,只需要进行一次网页分析就可以了。

今天就带着大家完成一次高难度动作,需要进行三次网页分析的爬虫,爬取下面这个网站。

first_url1="https://www.kanunu8.com/book3/6014/index.html"

代码及相关资源获取

关注“python趣味爱好者”微信公众号,回复“科幻小说”获取源代吗


开发工具:

python3.6.4

需要安装的模块:

requests

parsel

re


效果演示:


基本原理:

爬取这个网页与之前的“唐诗三百首”的不同就在于,爬取科幻小说需要分析三次网页。

这三个网页由里到外分别是:

1:爬取小说正文所在的网页:

https://www.kanunu8.com/book3/6014/105971.html

这个网页的最后105971.html是最重要的,章节就是按照这个区分的。

这个网页图片如下:

这个网页里面有正文,于是我们就需要把这个网页的正文全部提取出来,然后保存在txt文件里面。

我们把这个打包成一个函数:这个函数放在最后。大家可以仔细看一下。

2::一本小说的章节目录所在的网页

https://www.kanunu8.com/book3/6014/index.html

这个网页代表的是一个小说的章节目录,其中存储着很重要的信息,就是章节信息代表的数字。105971.html。

分析这个网页的目的是提取章节代表的数字(类似105971.html)。以及这个章节的标题名,比如“第一章 罗比”。

3:这个作者有很多部小说,我们要在这个网页分析每一个小说的网址的特征存储在哪里,然后提取出来。

也就是href和标题,图片如下:


部分代码:

下面是部分源代码:

def save1(url,title,title2):#存储一本书的每一章
    
    
    response=requests.get(url,headers=headers)
    response.encoding='gbk'
    html_str=response.text


    html = parsel.Selector(html_str)


    content= html.xpath('//div[@ align="center"]').extract()


    content=str(content)


    data=re.findall('u3000(.*?)<br>',content)
    content_txt=[]
    print("================正在下载====================")
    print(title2)


 
    #f=open(title+'.txt','a')
    f=open(title2+'.txt','a',encoding='utf-8')
    f.write(title)
    f.write("=====================================")
    for i in data:
        str1=i[6:]
        f.write(str1)
        f.write("\n")
    f.close()

              感谢大家观看,有钱的老板可以打赏一下小编哦!

扫描下方二维码,关注公众号

参考资料:

图片来源:https://images.pexels.com/photos/3844922/pexels-photo-3844922.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值