python 制作网站小说下载器
作者:Martina_oh 时间:2021-06-07 23:04:42
基本开发环境
· Python 3.6
· Pycharm
相关模块使用
目标网页分析
输入想看的小说内容,点击搜索
这里会返回很多结果,我只选择第一个
网页数据是静态数据,但是要搜索,是post请求,需要提价data参数,如下图所示:
然后通过解析网站数据,获取第一个小说i的详情页url即可
静态网页的获取,难度是不大的。
def search():
search_url = 'http://www.xbiquge.la/modules/article/waps.php'
data = {
'searchkey': name
}
response = requests.post(url=search_url, data=data, headers=headers)
selector = get_parsing(response.text)
novel_url = selector.css('.even a::attr(href)').extract_first()
1、获取每本小说的章节名以及url地址
所有的章节名以及url地址,都包含在dd标签里面
2、获取url后,需要拼接
'/23/23019/11409705.html' # 这是网页获取到的url
'http://www.xbiquge.la/23/23019/11409705.html' # 这是真实的小说章节内容url地址
3、小说名字,直接获取即可。
def download_one_book(index_url):
response = get_response(index_url)
response.encoding = response.apparent_encoding
sel = get_parsing(response.text)
book_name = sel.css('#info h1::text').get()
# 提取了所有章节的下载地址
urls = sel.css('#list dd a::attr(href)').getall()
# 不要最新的 12 章放在最前main
for url in urls:
chapter_url = 'http://www.xbiquge.la' + url
print(chapter_url)
保存下载每章小说内容
def download_one_chapter(chapter_url, book_name):
response = get_response(chapter_url)
response.encoding = response.apparent_encoding
html = response.text
selector = get_parsing(html)
h1 = selector.css('.bookname h1::text').get()
content = selector.css('#content::text').getall()
lines = []
for c in content:
lines.append(c.strip())
print(h1)
text = '\n'.join(lines)
file = open(book_name + '.txt', mode='a', encoding='utf-8')
file.write(h1)
file.write('\n')
file.write(text)
file.write('\n')
file.close()
小说软件界面
root = Tk()
root.title('小说下载器')
root.geometry('560x450+400+200')
label = Label(root, text='请输入下载小说名字:', font=('华文行楷', 20))
label.grid()
entry = Entry(root, font=('隶书', 20))
entry.grid(row=0, column=1)
text = Listbox(root, font=('隶书', 16), width=50, heigh=15)
text.grid(row=2, columnspan=2)
button1 = Button(root, text='开始下载', font=('隶书', 15), command=search)
button1.grid(row=3, column=0)
button2 = Button(root, text='退出程序', font=('隶书', 15), command=root.quit)
button2.grid(row=3, column=1)
root.mainloop()
显示下载内容
def novel_load(title):
text.insert(END, '正在保存:{}'.format(title))
# 文本框滚动
text.see(END)
# 更新
text.update()
实现效果
来源:https://www.cnblogs.com/Martinaoh/p/14365832.html
标签:python,小说,下载
0
投稿
猜你喜欢
Typora 1.4.8激活 2022最新Typora破解激活使用教程
2022-02-13 18:14:59
Django实现文件上传和下载功能
2022-04-02 15:19:34
Django配置Mysql数据库连接的实现
2024-01-28 10:48:33
uniapp实现人脸识别功能的具体实现代码
2024-04-17 09:57:36
Golang压缩Jpeg图片和PNG图片的操作
2024-05-09 14:55:43
mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)及变量创建(DECLARE)和赋值(SET)操作方法
2024-01-19 22:48:06
python模块导入的细节详解
2021-01-09 19:18:08
联邦学习FedAvg中模型聚合过程的理解分析
2023-09-28 02:29:48
ASP处理多关键词查询实例代码
2008-11-21 17:36:00
python使用协程实现并发操作的方法详解
2021-09-24 11:23:10
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021-08-13 07:18:56
大幅提升MySQL中InnoDB的全表扫描速度的方法
2024-01-19 20:58:42
Go 实现 WebSockets之创建 WebSockets
2024-05-09 09:30:36
python使用cookielib库示例分享
2022-09-22 13:53:37
PHP children()函数讲解
2023-06-13 04:38:38
最长用最基本的MSSQL数据库备份与还原
2024-01-17 18:23:07
element 实现导航栏收起展开功能及思路
2024-05-10 14:17:11
wxpython中自定义事件的实现与使用方法分析
2023-02-10 07:50:26
oracle移植到mysql注意事项
2008-12-25 13:09:00
python3使用pandas获取股票数据的方法
2023-01-04 15:01:15