python 制作网站小说下载器


Posted in Python onFebruary 20, 2021

基本开发环境

· Python 3.6

· Pycharm

相关模块使用

python 制作网站小说下载器

目标网页分析

python 制作网站小说下载器

输入想看的小说内容,点击搜索

python 制作网站小说下载器

这里会返回很多结果,我只选择第一个

网页数据是静态数据,但是要搜索,是post请求,需要提价data参数,如下图所示:

python 制作网站小说下载器

然后通过解析网站数据,获取第一个小说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标签里面

python 制作网站小说下载器

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()

实现效果

python 制作网站小说下载器

以上就是python 制作网站小说下载器的详细内容,更多关于python 小说下载器的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python深入学习之对象的属性
Aug 31 Python
python基于multiprocessing的多进程创建方法
Jun 04 Python
Django内容增加富文本功能的实例
Oct 17 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
利用Python实现朋友圈中的九宫格图片效果
Sep 03 Python
Python图像处理库PIL详细使用说明
Apr 06 Python
如何用python爬取微博热搜数据并保存
Feb 20 #Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 #Python
pandas统计重复值次数的方法实现
Feb 20 #Python
pandas 按日期范围筛选数据的实现
Feb 20 #Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 #Python
pandas按条件筛选数据的实现
Feb 20 #Python
python实现b站直播自动发送弹幕功能
Feb 20 #Python
You might like
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
JS删除字符串中重复字符方法
2014/03/09 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
Windows下安装python2和python3多版本教程
2017/03/30 Python
详解python之配置日志的几种方式
2017/05/22 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
python实现合并两个排序的链表
2019/03/03 Python
Python猴子补丁知识点总结
2020/01/05 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
python 将Excel转Word的示例
2021/03/02 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
大学毕业感言一句话
2014/02/06 职场文书
小学信息技术教学反思
2014/02/10 职场文书
租房协议书怎么写
2014/04/10 职场文书
慈善晚会策划方案
2014/05/14 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
党小组评议意见
2015/06/02 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
Python中glob库实现文件名的匹配
2021/06/18 Python
浅谈MySQL函数
2021/10/05 MySQL
Linux安装apache服务器的配置过程
2021/11/27 Servers
python获取字符串中的email
2022/03/31 Python
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA