Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明)

教程概述

本教程先是幽络源初步教学分析掌阅书籍的网络结构,最后提供完整的爬取源码与使用说明,并展示结果,切记勿将本教程内容肆意非法使用。

原文链接:Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明)

确定目标

第一次做,就先随便找一本的某一页作为目标

任意选择一本进入到任意一页,通过开发人员工具,也就是F12,在元素中可以看到页面中的内容实际为引入的iframe,如图

复制这个iframe链接,在另一个页面打开,可以看到,确实为书中的内容,如图

确定使用什么库

同样的打开开发人员工具,然后刷新网页,在网络中可以看到,响应的是一个html页面,而不是像json一样的数据,也不是js内容,因此我们此次爬取应当是用requests_html库,如图

分析页面

在元素栏,我们大致看下页面用到了什么标签,如图,可以看到还不少,特别对于这种编程类的书,可能小说类的书标签没这么复杂、繁多,包括了

h1~h5、div、p、pre、code、ul、img、strong,如图

爬取页面测试

导入requests_html,简单的爬取下当前页面,看看是否有结果,注意headers中请务必替换为自己的Cookie,这个是用户登录掌阅后,个人的Cookie,而且是会失效的,代码与图如下

python 复制代码
from requests_html import HTMLSession


headers={
    'Cookie': 'pc_yz_ireader_zypc_guid=4e74VQNTVVFWVVYJAwYGU1MEV1FbDABRXgxWUVBFDgMEChZVA1UkI1FUJRQBIHMATnAHc1IUICQMAE4iDAcCBnAJcl0LUVZDXQ; acw_tc=ac11000117345133024156602e0092fe3024a7908746542deb2cde133dcf3d; ZyId=53f28cda676292968b316; Hm_lvt_2583df02aa8541db9378beae2ed00ba0=1732523971,1733117980,1734513303; HMACCOUNT=640F76DB991E075B; pc_yz_ireader_userInfo=5a8aVVIDBAEIA1MFCFwDVlBVB1ZRUwYFBgICAwAADFAJHRdfWgkWREtWEXtZCAQVXUQMUlVZEggKAgUFVFUAVAZEXxZYAgYLGkEGUlEWFVIUY08TAEELEgkCDBZWQw0f; Hm_lpvt_2583df02aa8541db9378beae2ed00ba0=1734513504',  # 将 'your_cookie_here' 替换为实际的 Cookie 值
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}

catchUrl = r"https://www.ireader.com.cn/index.php?ca=Chapter.Content&bid=12582074&cid=17"

session = HTMLSession()
response = session.get(catchUrl, headers=headers)
print(response.html.html)

通过如上代码,我们获取了当页的元素信息并输出到了控制台,下面来逐步解析标签,结合python-docx库,将爬取的信息存入到word中

分析标签并输出

在<body>中可以看到所有内容其实都在一个class为h5_mainbody的div标签中,因此可以粗略的直接获取该div下的所有元素,代码与图如下

python 复制代码
session = HTMLSession()
response = session.get(catchUrl, headers=headers)

eles=response.html.find(".h5_mainbody *")

for ele in eles:
    print(ele) #输出每个元素

完整源码与使用方式

完整源码

行数有点大,这里就不直接贴出了,我保存在了夸克盘中(请勿肆意非法使用),完整源码见链接:

夸克网盘分享

使用方式:

如图,我这里以爬取《Python编程:从入门到实践》为例子

可以看到本书的bid为12582074

最后一页的cid为207

因此我将这三个参数填入到源码中

此外,特别需注意的是cookie也要填入自己的,如图

爬取结果

为了演示,我这里只爬取了50页,结果如图,可以看到,书本内容完整的爬取到了word中,且根据标题做了分级,还是很不错的

总结建议

在这个爬取源码中,算是比较良好,能完整的爬取所有内容,我个人认为不足的是图片处理还需优化,代码中的图片处理是直接获取的原图,为了美观,应当根据css来决定图片的大小,以上是幽络源的python使用requests_html库爬取掌阅的分析教程与完整源码提供,如有疑问,可加群询问,如有其他需求可站内留言。

相关推荐
李日华大战鸡红1 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
外收内放3 小时前
Python基础语法练习题(57-58)
开发语言·python
朝朝辞暮i3 小时前
VLA 系统学习第 3 课:从一次机器人示范,到真正送进神经网络的 Batch
人工智能·python·深度学习·神经网络·vla
小鹿的周先生4 小时前
第11章-Structured-Output
开发语言·人工智能·python
梦在远山后4 小时前
通过 WSS 让 Server 安全调用 Desktop 本地工具(下01):Ticket、人工确认、幂等与断线对账
python·langchain·agent
泡海椒4 小时前
JQuick-Excel 实战:FORMAT 管理日期与数字的 Excel 显示
开发语言·python·excel
学掌门5 小时前
老司机带你十分钟入门Python!
开发语言·python
YEGE学AI算法6 小时前
Python实现Log-Mel Fbank:分帧、加窗、FFT与Mel滤波器组
python·语音识别·fbank·log-mel·音频特征
甜到心里的蛋糕6 小时前
Playwright 无头浏览器自动发布 CSDN 图文草稿的实践(持久化 profile + 图床直传)
运维·python·playwright·爬虫自动化·博客运营
jason.zeng@15022076 小时前
(六)Prompt 优化
python·ai·langchain·prompt·ai编程·llama