用python写了一个小说下载器 第一版1.5
本帖最后由 吖力锅 于 2023-9-18 09:34 编辑PS:上次写的网站有bug,那个bug我修改不了,重新换了个小说网站爬取。
今天有空复习了一下学习过的内容,写了一个爬取小说下载器,比较简单,输入需要下载的小说链接,就会自动下载了。
这个是我想法中的第一版,比较简单
第一版修改了 1.3版本,修改一下代码
第二版需要改成可以搜索小说名称的版本 ,再加一个GUI界面
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)
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)
wenzhang2 = wenzhang.replace("<br>", '\n')
name = re.findall('<h1>(.*?)</h1>', html)
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}下载成功")
这个是打包好简易版的程序,输入小说链接,键盘回车就可以自动下载了,有兴趣的朋友可以下载来玩一玩
单线程下载版(可以合并在一个txt文本里面,下载速度慢)
https://sw3374629.lanzoub.com/ioopK18pw2ji
多线程版(下载速度快,不过一个章节一个txt文本)
https://sw3374629.lanzoub.com/in1PV18rteyj
插针,留下自己的脚步,等你更新好了 你这是固定某个网址吗? Kls673M 发表于 2023-9-2 16:30
你这是固定某个网址吗?
是的。只能爬取这个网站,我们最熟悉的某阁 你这个第一章节没有重复下载吧,我去看了小说那边,确实有两个第一章 因为你把标题放在一段后面了 繁华中的沉寂 发表于 2023-9-2 17:48
因为你把标题放在一段后面了
大佬就是大佬,改好了 这个只能爬取固定的网站,希望能写一个通用的爬虫 等你后续版本