文章目录

  • 有点荒废
  • 需求分析
  • 代码实现
  • 人性化下载
  • 打包exe使用
  • The End
有点荒废

这几天有点荒废,之前弃坑的网文《伏天氏》,这几天又给捡起来了。然后一发不可收拾的只想看小说,荒废了我的学习。在这里我要检讨啊…
像我这样的穷人,看小说肯定是找免费的网站,可不管手机还是电脑,免费网站充斥着各种的广告和链接。想找个小说txt下载的,找了半天的找不到,生气的我决定,自己拿python撸一个小说下载器!走起…

需求分析

免费的小说网比较多,我看的比较多的是笔趣阁。这个网站基本收费的章节刚更新,它就能同步更新,简直不要太叼。既然要批量下载小说,肯定要分析这个网站了…

在搜索栏输入地址后,发送post请求获取数据,然后根据url解析,模拟操作即可。打开Fiddler,chrome搜索一下伏天氏,然后看看抓取到的日志流:

代码实现

在我们开始编码前,先得看下parameters中的这几个参数。
searchkey是什么鬼?
这是因为在因特网上传送URL,只能采用ASCII字符集。所以当传输中文时,有些网站会将中文进行编码后传输,再通过后台解码。那在python中该怎么做呢:

from urllib.parse import quote
quote('伏天氏')
'%E4%BC%8F%E5%A4%A9%E6%B0%8F'
# 为什么和Fiddler显示字符串不一样?
# 因为这个网站使用的gbk编码...
# 按照下面这样操作即可
quote('伏天氏',encoding='gbk')
'%B7%FC%CC%EC%CA%CF'

ct又是什么鬼?
我不知道,开始以为是临时参数,但试了好几次都是一样的,最后算了下:
102410242 = 2091752 …应该是网站那里需要进行限制的吧…

剩下的两个参数照着写就行了,先来一段代码测试下:

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/6/30 23:51
# @Software : PyCharm
# @version  :Python 3.7.3
# @File     : a.pyimport requests
from urllib.parse import quotesession = requests.session()headers = {"User-Agent": ("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ""(KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36")}
url = ('http://www.biquge.cm/modules/article/sou.php?''searchkey=%s&ct=2097152&si=biquge.cm&sts=biquge.cm') % quote("伏天氏", encoding='gbk')
result = session.post(url, headers=headers)
result.encoding = 'gbk'
print(result.text)


查看下结果,一切ok。标红这个id='list'是因为,当找不到小说的时候,就定位不到这个元素了。所以可以用来判断返回结果。解析url,然后获取所有的a标签text以及href和首页进行拼接,就可以实现跳转至每章内容了…
那么要使用requests+beautifulsoup进行二连击?No…上周五咱们说了requests_html这个模块,接着复习下呗…代码片段说明下:

from urllib.parse import  urljoin
# 根据url获取所有章节标签
response = self.post_method(post_url)
novel_data = response.html.find('#list a')
for chapter in novel_data :chapter_name = chapter.textchapter_url = urljoin(self.URL, chapter.attrs['href'])

这里注意下,url的拼接,如果你很闲可以自己写,如果你懒,直接使用urljoin即可。
每章内容的定位比较简单,就不再赘述了。

人性化下载

要想产品做得好,首先需要在需求分析的时候有亲身的体验与调研。
作为多年书虫,对于书友们太了解了,很多人看小说都会有养书的习惯,攒上个几十章,然后一次看个够。
完了再换其他的小说接着看,等攒够了再来刷。
按照咱么这样每次去通篇下载,不仅浪费时间也太不人性化了…
所以,增加了如下方式:

看到这些参数大家因该知道了,没错,使用列表切片进行动态下载!

打包exe使用

代码写完了,但是每次下载都要让大家在Python环境下进行使用,未免太麻烦了吧?
通过pyinstaller将代码进行打包成exe的可执行文件。你可以在任意的电脑上直接使用。
ps:因为是咱们自己打包的exe,所以杀软获取不到证书,多数会误报…添加信任或者临时关闭一下杀软即可。
伏天氏我中午看到了1130多章,那我下载最近50章给大家演示下exe的使用吧:

怎么样,exe的使用大家还满意吗?赶紧发了文章,吧下载的文本导到手机,接着啃剩下的章节了…
至于之前发了几次的文章转语音,为什么不用?
看小说的都知道,其实就图乐子…基本都是一目十行,指望百度API的语音,读到猴年去了。
另外,其实文本转语音的工具太多了,我平时使用的比较多的就是搜狗搜索多看阅读
导入文本后,直接能生成章节目录,调用讯飞语音的方茴,读起来比百度API的萝莉音舒服很多。
截几张图给大家看看刚才咱们下载的文本导入效果:


狂拽炫酷叼炸天!哈哈…

The End

今天的文章就分享到这里,不知道这波福利大家是否满意呢?
为了避免不必要的纠纷,公众号内部回复**小说**,即可获取exe的下载地址…
说明:此工具仅作为Python学习用途,请勿用于其他不正当途径,谢谢。
OK,今天的内容就到这里,如果觉得有帮助,欢迎将文章或我的微信公众号【清风Python】分享给更多喜欢python的人,谢谢。

使用Python开发小说下载器,不再为下载小说而发愁相关推荐

  1. 安卓手机小说阅读器_百万小说阅读器app免费版下载-百万小说阅读器app手机版下载v1.4...

    百万小说阅读器app这款小说中的资源堪称全网最齐全的且这里的内容十分丰富,能让你在这里阅读的时候有更多的免费资源的选择,而且这里还分有男女频道,让你在这里阅个痛快哦.还可以自动翻页,解放双手,提高用户 ...

  2. 安卓手机小说阅读器_书城小说阅读器app下载_书城小说阅读器手机版下载

    书城小说阅读器是一款智能小说阅读软件,可以智能搜索全网的小说,通过关键字搜索小说,一键轻松阅读小说,感兴趣的朋友快来下载书城小说阅读器吧. 书城小说阅读器app特色 1.内置智能查找.目录查找.关键字 ...

  3. idm下载器去哪里下载 idm下载器用不了什么原因

    办公过程中下载资料是常见的操作,好用的下载工具有很多,根据个人使用经验,idm是一款优秀的下载器.那么,idm下载器去哪里下载?我们可以通过idm中文网站下载.idm下载器用不了什么原因?用不了,可能 ...

  4. Sketchfab下载器ArtStation资源下载操作说明中文网模型提取教程

    Sketchfab下载器ArtStation资源下载操作说明中文网模型提取教程 一次下载,终身免费使用 找到软件 打开软件 打开Sketchfab网站,找到要下载的资源 进入资源,负责URL 地址 把 ...

  5. DAP_LINK下载器固件编译下载过程

    DAP_LINK下载器固件编译下载过程 目录 DAP_LINK下载器固件编译下载过程 1.daplink的介绍 2.程序编译-环境配置 2-1 stm32f103xb_bl工程 2-2 stm32f1 ...

  6. python小说下载器_python 制作网站小说下载器

    基本开发环境 · Python 3.6 · Pycharm 相关模块使用 目标网页分析 输入想看的小说内容,点击搜索 这里会返回很多结果,我只选择第一个 网页数据是静态数据,但是要搜索,是post请求 ...

  7. python开发音乐播放器教程_python开发简易版在线音乐播放器示例代码

    在线音乐播放器,使用python的Tkinter库做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过urllib.urlopen模块打开网址,使用Json模块进行数 ...

  8. python 表情包下载器,轻松下载上万个表情包、斗图不用愁

    [阅读全文] 每次和朋友聊天苦于没有表情包,而别人的表情包似乎是取之不尽.用之不竭.作为一个程序员哪能甘愿认输,于是做了一个表情包下载器供大家斗图. 首先,还是介绍一下设计思路吧,和我们之前做的百度图 ...

  9. python开发音乐播放器教程,Python挑翻音乐网,GUI实现音乐播放器,无敌Pythoner炼成记!...

    今天几篇博文都是些Python纯干货,有难度大的,也有难度比较低的适合新手的.但无一列外,就是它们都会有源码+视频教程二合一供大家学习.这样的文章有个好处,本人的文章多次遭其它人copy到其它网站,这 ...

  10. 如何使用 Python 开发一个【抖音视频下载神器】

    国外有个在线网站,专门帮别人下载 YouTube 上面的视频,功能很简单直接,就是把你想要的 youtube 视频地址复制进去,然后点击 start 就可以下载视频: 不过,当你点击下载的时候,会跳转 ...

最新文章

  1. CentOS搭建msmtp+mutt实现邮件发送
  2. adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)
  3. Adversarial Discriminative Domain Adaption 阅读笔记
  4. [html] 你觉得写Html难吗?难在哪?为什么?
  5. [SAP FI] Bank Master Vendor Master Creation Related Knowledge
  6. Java高级架构师需要掌握什么?
  7. python二级模拟选择题集错网_计算机二级python真题:第1套选择题A
  8. Tensorflow训练和预测中的BN层的坑(转)-训练和测试差异性巨大
  9. 算数or算卦,和业务人谈“预测”到底在谈啥?
  10. idea创建maven工程_maven创建父子工程 springboot自动配置
  11. 【Python】bar柱状(条形)图(带均值和标准差)
  12. 关于手机无法弹出谷歌通知栏验证的问题
  13. Adobe Spark试用手记
  14. SO-Pose: Exploiting Self-Occlusion for Direct 6D Pose Estimation
  15. CSS3做齿轮旋转的动画
  16. Unity Direct3D 和 OpenGL
  17. python3 - 7 Python数据类型-字符串
  18. 解决Altium Designer许可(license)授权紧张的问题
  19. 使用openSUSE
  20. 光纤的速度到底有多快

热门文章

  1. 2020校招途家名宿开发笔试
  2. 用360安全卫士检查计算机中是否有木马,你的电脑真的做好防护了吗?使用360安全卫士木马查杀一键扫描就知道...
  3. 关于网络拓扑图,你想知道的都在这
  4. 扫雷小游戏 3.0 版本
  5. CF364D Ghd(随机化)
  6. OpenCV每日函数 WeChat QR 微信二维码检测器
  7. 堪比端游!欧美十大RPG网页游戏推荐
  8. linux shell运用16进制计算
  9. Qt导航栏 QListWidget
  10. 74hc595点亮点阵式led交通灯灯 c语言程序,74hc595驱动点阵程序