分享好友 最新资讯首页 最新资讯分类 切换频道
Python爬虫爬取小说 转换成epub格式
2024-12-29 04:44

Python版本 python3.7

Python爬虫爬取小说 转换成epub格式

Python库:requests, bs4

epub转换程序准备:pandoc: https://pandoc.org/installing.html ,下载安装windows版本。

浏览器:Chrome

本篇文章只介绍简单的小说网站内容爬取,以及文本转epub格式工具的使用。主要是为了学习爬虫,请支持正版小说。

    这一步比较简单,一般的浏览器都支持。打开网页后,按F12即可查看网页源码。或者右键单击网页内容,然后选择检查即可打开网页源码。

小说网站里面一般都有一定的结构,比如正文内容,上一章,下一章,目录等链接。这些链接所在的位置可以用通过Selector值表示,我们可以通过bs4中的BeautifulSoup中的select函数快速从网页源码找到对应的内容。

从Pandoc的官网教程中:https://pandoc.org/epub.html 我们可以看到转换epub有以下需要注意的地方

a.书名和作者名前面加一个"%"号

b.每段文本结尾需要两次换行;

c.章节名前加"#"号;

以下是转换后的epub文档,截取了其中的封面和第二章

Pandoc转换epub文档还有更多的高级选项,可以参考这个链接:https://pandoc.org/demos.html

首先我们用VS Code创建一个Python文件,导入以下需要模块。(如何使用VS Code调试Python代码此处不做赘述,网上教程比较多

 

以 https://qxs.la 这个网站为例,我们选一本小说,进入小说的第一章阅读页面。复制小说标题的Selector,内容的Selector,下一章链接的Selector。然后通过以下代码获取这三个Selector的Tag。首先是通过requests.get函数获取到整个网页的源代码,然后通过BeautifukSoup解析网页源码。

 

其中select的参数就是你复制到的selector值,我们可以通过VS Code调试控制台和运行侧边栏看到我们获取到的变量Tag的内容。

接下来就是将title和content这两个Tag中的文本信息提取,将next_page_link Tag中的链接信息提取出来。获取文本信息可以调用Tag的getText接口

title只有一行,不加参数直接调用,content里面的段落比较多,需要指定separator参数,否则获取到的文本内容会难以区分段落。

 

接下来获取下一页中的链接内容。我们可以通过调试观察到next_page_link中href key对应的value为我们需要的内容,可以使用Tag的get接口,然后再将其和网站主站点url组成我们需要的网址。

 

到此处,一章内容就爬取完毕了,我们只需要再通过requests.get访问next_page_link,一直循环下去即可。那么什么时候终止循环呢?我们可以通过浏览器访问小说最后一章,然后观察最后一章的下一章链接内容是什么,然后把那个链接作为循环终止的判断条件即可。

可以查看爬取到的content内容,第一行的广告有点影响阅读体验,每行开始有两个 全角的空白字符。因为最终是要抓换小说内容到epub格式,那么就需要把爬取到的内容先转成那种每段后面两次换行,每条章节名前面加一个"#"的格式。

可以发现广告的行数为固定的行数,那么直接先将content分行,丢弃前面的广告行,然后每行进行一个strip操作,去除前后的空白字符就获取到的纯净的小说内容了。

 

然后将我们爬取到的内容按照Pandoc转epub格式写入到文件中去,保存为utf8格式

 
 

这一步也比较简单,就是一个Python调用外部可执行程序的操作,通过os.system接口调用即可。

 

 


 

手机上阅读效果

有的网站有反爬虫系统,需要再request.get接口加上浏览器标识才可以获取到内容,如下所示

 

有的网站会根据限制同一IP的请求频率,那就需要再每次request.get后随机延迟一段时间再请求才可以。

最后,其实这个网站的小说可以直接下载txt的,不需要爬虫的。

 

 

最新文章
Google Trends和Google Insights
Google Trends(谷歌趋势)发布过中文版,是Google推出的一款基于搜索日志分析的应用产品,通过这个工具可以知道某一搜索关键词
AI绘画工具MJ新功能有点东西,小白也能轻松一键换装
先看最终做出来的效果直接来干货吧。Midjourney,下面简称MJ1.局部重绘功能来袭就在前两天,MJ悄咪咪上线了这个被众人期待的新功
AI制冷,守护绿色未来
互联网发展至今,全球已有近44亿网民,我们通过不同的设备连接互联网,享受着在线购物,在线交友等一系列智能生活,而这背后,离
DDos攻击的防御方法
到目前为止,进行DDoS攻击的防御还是比较困难的。首先,这种攻击的特点是它利用了TCP/IP协议的漏洞,除非你不
AI音乐生成将导致音乐作品版权概念的消亡
在这个迅速变化的时代,科技的进步总是令人惊叹。最近AI音乐生成技术的兴起,开始掀起了关于音乐作品版权的讨论。或
ai语音功能是什么 ai语音功能详解?
2、可以帮用户完成生活当中的众多琐事,比如说翻译、打车、酒店、购物、百科百答等等;3、能够进行全场景实时图像搜索,让电视播
CLion和IDEA集成的ai代码助手——通义灵码的使用及其自动代码补全的禁用设置等使用优化
       通义灵码,作为智能编码on助手,可以在进行编码工作时,为你提供行级/函数级实时续写、自然语言生
11、作为服务注册中心,Eureka比Zookeeper好在哪里?  ***
目录 1、什么是微服务? 2、微服务之间是如何通讯的? 3、springcloud 与dubbo有哪些区别?  4、springBoot
AI�˹�����Ʒ�����а���˹�����δ����չ
�˹����ܣ�AI���ǵ���Ƽ�������Ϊ���ֿ��ȵĻ���֮һ�����ż����IJ��Ͻ�����Ӧ�õ