Python爬虫lxml的etree类之疯狂屠戮盗版笔趣阁

关于python的安装我们就不多介绍了

这网址对lxml进行详细的介绍

lxml.etree 教程 作者:斯特凡·贝内尔

首先提醒一点我们从网页上爬取网页的数据,就需要模拟网站模式,而不是明显显的说我是代码我要爬取你们的数据了,这样我们就会获得一个ban位,如果有傻冒(智慧的人)使用了校园网,可能一整个学校的人都不能登录这个网站,使用手机热点可以避免这个问题(只需要开启飞行模式,等待几分钟,基站就会再分配一个IP地址,这样我们就可以继续犯罪了哈哈哈啊哈哈!!)

这里我们使用的requests库:

如果成功就会显示succees

lxml库:

之后我们就开始找到一个笔趣阁的网站(盗版看见笔趣阁_书友最值得收藏的网络小说阅读网!_beqege.com)

 我在这里使用的是正版的(也不好说)

找一本自己喜欢的小说然后获取url:

作为初学者我使用的xpath工具

可以帮助我们初学者简化处理过程直接定位到需要的文本 。

这里我们只需要定位小说的标题和内容,当然在爬虫的批量化下我们也需要判断是否有下一章并获取下一章的url地址。

之后就是代码阶段

通过requests库请求得到响应的界面然后通过lxml的etree类选择我们需要的文本。

之后就是把文本写入到一个文件夹中,不断的爬取然后追加写入文本中。

下面是我的全部代码

import sys
import time
import requests
from lxml import etree

base_url = "https://www.bbiquge.net/book/133312/56524593.html"

header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.79'
}


def main():
    url = base_url
    with open('output.txt', 'w', encoding='utf-8') as file:
        for b in range(0,2):
            response = requests.get(url=url, headers=header,timeout=30)
            html = etree.HTML(response.text)
            pattern1 = html.xpath("/html/body/div[@id='main']/h1")
            pattern2 = html.xpath("/html/body/div[@id='main']/div[@id='readbox']/div[@id='content']")

            url1 = html.xpath("/html/body/div[@id='main']/div[@id='readbox']/div[@class='papgbutton']/a[@id='link-next']/@href")
            url = url1[0] if url1 else None
            for j in pattern1:
                file.write('\n'.join(j.xpath('./text()')))
                file.write('\n')
                for i in pattern2:
                    file.write('\n'.join(i.xpath('./text()')))
                    file.write('\n')
            time.sleep(2)
    return 0


main()
if __name__ == "__main__":
    sys.exit(main())

 xpath压缩文件https://pan.baidu.com/s/14FUbSoM1u8JA1z7uZHX1wg

 密码:1kbc

直接解压到一个文件中,edge浏览器需要在本地配置插件(谷歌可以直接在插件里面下载)。

  (小白纯纯记录自己的道理,大神勿喷,有不对的地方请斧正)

猜你喜欢

转载自blog.csdn.net/date3_3_1kbaicai/article/details/131692008