本帖最后由 吖力锅 于 2023-9-18 09:34 编辑
PS:上次写的网站有bug,那个bug我修改不了,重新换了个小说网站爬取。
今天有空复习了一下学习过的内容,写了一个爬取小说下载器,比较简单,输入需要下载的小说链接,就会自动下载了。
这个是我想法中的第一版,比较简单
第一版修改了 1.3版本,修改一下代码
第二版需要改成可以搜索小说名称的版本 ,再加一个GUI界面
[Python] 纯文本查看 复制代码 import re
import requests
mainurl = input("请输入小说链接:")
head = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
res2 = requests.get(url=mainurl, headers=head)
html2 = res2.text
href = re.findall('<a href="(.*?)" title=".*?">', html2)
xiaoshuo = re.findall('<meta property="og:title" content="(.*?)"/>', html2)[0]
for i in href:
url = f'https://www.ydshu.com{i}'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
res = requests.get(url=url, headers=headers)
html = res.text
wenzhang = re.findall('<div id="htmlContent"><p>(.*?)</p></div>', html, re.S)[0]
wenzhang2 = wenzhang.replace("<br>", '\n')
name = re.findall('<h1>(.*?)</h1>', html)[0]
wz_name = re.sub(r'[<>:""/\\|?*]', '_', name)
# 将章节内容写入文件
with open(f'{xiaoshuo}.txt', mode='a', encoding='utf-8') as f:
f.write(wz_name)
f.write('\n')
f.write(wenzhang2)
f.write('\n')
print(f"{wz_name} 下载成功")
[/mw_shl_code]
这个是打包好简易版的程序,输入小说链接,键盘回车就可以自动下载了,有兴趣的朋友可以下载来玩一玩
单线程下载版(可以合并在一个txt文本里面,下载速度慢)
https://sw3374629.lanzoub.com/ioopK18pw2ji
多线程版(下载速度快,不过一个章节一个txt文本)
https://sw3374629.lanzoub.com/in1PV18rteyj
|