最简单的python爬取网页小说

最简单的python爬取网页小说

坏境

爬取网址:

https://www.biquzw.la/10_10218

使用到的python库requests、lxml

这些库都可以通过pip进行安装,如pip install requests

用到的浏览器插件:xpath helper

这个插件和lxml配合使用,可代替传统的re模块,也是就是正则表达式(这个很难记)

这里给大家介绍一个超快的pip下载方式

pip install lxml
-i  http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

这个原理其实就是利用国内源进行下载

实现代码

import requests
from lxml import etree
url='https://www.biquzw.la/10_10218/5001501.html'
#模拟浏览器
while True:
    headers={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'}
    #请求网页
    resp=requests.get(url,headers=headers)
    #编码响应得到的数据
    resp.encoding='utf-8'
    #筛选所需要的内容
    new_resp=etree.HTML(resp.text)
    info='\n'.join(new_resp.xpath("//div[@id='content']/text()"))
    title=new_resp.xpath("//div[@class='bookname']/h1/text()")[0]
    # print(info)
    # print(title)
    #找到下一章的url,利用递归进入循坏
    url=new_resp.xpath("//div[@class='bottem']/a[4]/@href")[0]
    with open('斗罗大陆.txt','a',encoding='utf-8') as f:
        f.write(title + "\n\n" + info + "\n\n")
    if url=='https://www.biquzw.la/10_10218/':
        break
resp.close()
f.close()

代码需要注意的地方讲解

通过new_resp=etree.HTML得到的是列表形式

所以后续的'\n'.join()[0]都是为了得到字符串的形式

xpath括号里的其实就是筛选的内容具体的xpath helper 的语法这章就不细讲了,反正比正则表达式简单多了

如:在这里插入图片描述

while循坏其实就是利用每章后面都有下一章的超链接,形成递归,从而循环

如:在这里插入图片描述

最后的if条件是当下载到最后一章时,超链接会发生变化,回到最初始页面,不再是递归,需要停止(反正也下完了,必须要停下)

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值