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

   日期:2024-12-29     作者:0omy6       评论:0    移动:http://3jjewl.riyuangf.com/mobile/news/12456.html
核心提示:Python版本 python3.7 Python库:requests, bs4 epub转换程序准备:pandoc: https://pandoc.org/installing.html 

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的,不需要爬虫的。

 

 

 
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0评论 0
 
更多>同类最新资讯
0相关评论

相关文章
最新文章
推荐文章
推荐图文
最新资讯
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号