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构建Hopfield网络的教程
Apr 14 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
May 30 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
Python面向对象之类的封装操作示例
Jun 08 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
Django视图、传参和forms验证操作
Jul 15 Python
Python数据库封装实现代码示例解析
Sep 05 Python
通俗易懂了解Python装饰器原理
Sep 17 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编写大型网站问题集
2007/03/06 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
vue.js表格分页示例
2016/10/18 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python实现子类调用父类的方法
2014/11/10 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
Python实现疫情地图可视化
2021/02/05 Python
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
给校长的建议书400字
2014/05/15 职场文书
节约用水演讲稿
2014/05/21 职场文书
签订劳动合同通知书
2015/04/16 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
师范生小学见习总结
2015/06/23 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
使用Ajax实现进度条的绘制
2022/04/07 Javascript