欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > python项目实战 小说下载源码

python项目实战 小说下载源码

2025/5/1 18:13:29 来源:https://blog.csdn.net/zcj18537150970/article/details/143495035  浏览:    关键词:python项目实战 小说下载源码

 小说下载

# 引入框架
import tkinter as tk
import requests
from lxml import etree# 类
class Query:# 类里面的一个固定方法def __init__(self, master) -> None:self.wd_1 = master# 设置窗口大小self.wd_1.geometry("400x330+700+20")# 设置窗口标题self.wd_1.title("小说下载")# 设置窗口的图标self.wd_1.iconbitmap("./小说下载/小说.ico")# tk 特殊变量  绑定输入框self.index_url = tk.StringVar()self.create_page()self.handle_event()def create_page(self):"""创建页面"""# label 文本tk.Label(self.wd_1,text="请输入书本网小说第一章第一页url地址,书本网网址为\nhttp://www.bookbenx.com/",justify=tk.LEFT,).place(x=17, y=10)# entry 输入框tk.Entry(self.wd_1, width=30, textvariable=self.index_url).place(x=20, y=52)# 保存路径  labletk.Label(self.wd_1, text="保存路径").place(x=20, y=72)tk.Entry(self.wd_1, width=20).place(x=20, y=92)# tk.Label(self.wd_1, text="浏览").place(x=20, y=82)self.button_1 = tk.Button(self.wd_1, text="浏览", width=3, height=1)self.button_1.place(x=180, y=82)self.bt_download = tk.Button(self.wd_1, text="下载", width=3, height=1)self.bt_download.place(x=220, y=82)self.button_3 = tk.Button(self.wd_1, text="清空", width=3, height=1)self.button_3.place(x=260, y=82)# 文本框self.text_1 = tk.Text(self.wd_1, width=50, height=14)self.text_1.place(x=20, y=120)def handle_event(self):# 点击下载开始下载小说# 拿到小说链接# 当下在按钮被点击的时候 获取下载地址,然后进行下载self.bt_download["command"] = self.download_bookdef download_book(self):book_url = self.index_url.get()# 下载小说# 伪装自己while True:headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"}# 发送请求resp = requests.get(book_url, headers=headers)# 设置编码resp.encoding = "utf-8"# 响应##print(resp.text)# 保存e = etree.HTML(resp.text)# 小说内容# 书本网info = "\n".join(e.xpath("//div//article/p/text()"))# 全本小说网# info = "\n".join(e.xpath('//div[@id="booktxt"]/p/text()'))# 小说标题# 书本网title = e.xpath('string(//div//p[@class="style_h1"])')# 全本小说网# title = e.xpath("//h1/text()")[0]# 小说名字# 书本网book_name = e.xpath('//meta[@property="og:title"]/@content')[0]# 全本小说网# book_name = e.xpath('//div[@id="header_title"]/a')# 下一页 or 下一章# 书本网next_url = e.xpath('//div//a[@id="next_url"]/@href')[0]# url 重新赋值book_url = "http://www.bookbenx.com" + next_url# 全本小说网# 获取下一页的小说内容# requests.get(next_url, headers=headers)# 输出到txt里# print(next_url)# print(title)# print(info)# print(book_name)next_name = e.xpath('//div//a[@id="next_url"]/text()')[0]# print(next_name)if next_name == "没有了 ":breakwith open(book_name + "." + "txt", "a", encoding="utf-8") as f:f.write(title + "\n\n" + info + "\n\n")self.text_1.insert("insert", f"{title}下载完成\n")self.text_1.update()if __name__ == "__main__":# 窗口对象wd_1 = tk.Tk()# 调用页面类,传入窗口对象Query(wd_1)# 事件循环wd_1.mainloop()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词