养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

用python下载电子书的方法

时间:2024-11-08 06:42:55

本文,介绍一个把网页里面的电子书,保存到本地的方法。其实,就是用python自动下载电子书。

用python下载电子书的方法

工具/原料

电脑

python3.6(anaconda)

requests模块

re模块

方法/步骤

1、这里下载biquge里面的一本电子书,书名是《两界搬运工》,代码是17_17115。之所以在这个网站下载,是因为这里的反爬措施不那么严厉,连续下载了一千二百七十七章,也没有出现封锁IP的现象。

用python下载电子书的方法

2、找到目录页,可以看到章节列表,而每一章都对应一个超链接。

用python下载电子书的方法

3、用python读取目录页:importrequestsasrtimport筠续师诈reurl='……biquge.com.墉掠载牿tw/17_17115/'a=rt.get(url)print(a)如果返回<Response[200]>,就说明这个页面读取成功了。

用python下载电子书的方法

4、查看页面的headers,了解编码格式:a.headers

用python下载电子书的方法

5、上面没有明确指出编码格式,尝试使用gbk编码:a.encoding='gbk'然后读取目录页的源代码:b=a.text

用python下载电子书的方法

6、用正则表达式来提取每一章的超链接:c=re.findall('<dd><ahref="(/17_17115/\d+.html)">',b)

用python下载电子书的方法

7、提取每一章的标题,需要匹配汉字字符言射鐾钤串和空格:d=re.findall('</a>稆糨孝汶;</dd><dd><ahref="/17_17115/\d+.html">([\u4e00-\u9fa5]+)',b)

用python下载电子书的方法

8、尝试着下载第二章的网页源代码佼沣族昀:p='……biquge.com.tw'u=rt.get(p+c[1])u.encoding=媪青怍牙'gbk'v=u.text可以看到,网页源代码里面包含着电子书的正文内容;每一段的开头,是四个空格(&nbsp;)。

用python下载电子书的方法

9、这样,可以单独把正文擢爻充种的内容拿出来:w=re.findall('(&nbsp;&荏鱿胫协nbsp;&nbsp;&nbsp;.*?)<br/>',v)但是,我们可以发现,段落开头的空格仍旧是&nbsp;,这样看着很难受是不是?因此,可以用''替换&nbsp;

用python下载电子书的方法

10、替换的方法是re.sub:forjinw:j=re.sub('&nbsp;','',j)print(j)这个函数的具体用法,可以参考《python里面re.sub()函数的使用方法》。

用python下载电子书的方法

11、每一章保存为一个独立的txt文档;把所有txt文档都放到同一个文件夹里面——jia=u'C:\\Users\\Administrator\\Desktop\\两界搬运工\\'整体代码如下图所示。

用python下载电子书的方法

12、打开文件夹,大概半个小时,下载了1200多章。这时候再使用百度语音合成功能,就可以让人工智能自动朗读小说了。

用python下载电子书的方法

© 一点知识