用python下载电子书的方法

2025-09-28 10:23:52

1、这里下载biquge里面的一本电子书,书名是《两界搬运工》,代码是17_17115。

之所以在这个网站下载,是因为这里的反爬措施不那么严厉,连续下载了一千二百七十七章,也没有出现封锁IP的现象。

用python下载电子书的方法

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

用python下载电子书的方法

3、用python读取目录页:

import requests as rt

import re

url = '……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><a href="(/17_17115/\d+.html)">',b)

用python下载电子书的方法

7、提取每一章的标题,需要匹配汉字字符串和空格:

d = re.findall('</a></dd><dd><a href="/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:

for j in w:

    j = re.sub('&nbsp;',' ',j)

    print(j)

这个函数的具体用法,可以参考《python里面re.sub()函数的使用方法》。

6python里面re.sub()函数的使用方法

用python下载电子书的方法

11、每一章保存为一个独立的txt文档;

把所有txt文档都放到同一个文件夹里面——

jia = u'C:\\Users\\Administrator\\Desktop\\两界搬运工\\'

整体代码如下图所示。

用python下载电子书的方法

12、打开文件夹,大概半个小时,下载了1200多章。

这时候再使用百度语音合成功能,就可以让人工智能自动朗读小说了。

用python下载电子书的方法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢