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获取网页状态码示例
Mar 30 Python
python使用代理ip访问网站的实例
May 07 Python
对python中array.sum(axis=?)的用法介绍
Jun 28 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
Python实现Linux监控的方法
May 16 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
python 绘制国旗的示例
Sep 27 Python
Python的collections模块真的很好用
Mar 01 Python
Python中itertools库的四个函数介绍
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
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
php显示时间常用方法小结
2015/06/05 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
python 实现堆排序算法代码
2012/06/05 Python
python的Template使用指南
2014/09/11 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
用Python中的字典来处理索引统计的方法
2015/05/05 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
用python找出那些被“标记”的照片
2017/04/20 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
基于python plotly交互式图表大全
2019/12/07 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Django静态文件加载失败解决方案
2020/08/26 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
软件测试企业面试试卷
2016/07/13 面试题
小学生安全保证书
2014/02/01 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
英语教师求职信范文
2015/03/20 职场文书