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转换字符串为摩尔斯电码的方法
Jul 06 Python
python 删除非空文件夹的实例
Apr 26 Python
解决python3 json数据包含中文的读写问题
May 10 Python
python发送邮件脚本
May 22 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
python生成大写32位uuid代码
Mar 03 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
Numpy数组的广播机制的实现
Nov 03 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 Python
python中Matplotlib绘制直线的实例代码
Jul 04 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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
js 事件小结 表格区别
2007/08/13 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
编程语言Python的发展史
2014/09/26 Python
Python中list初始化方法示例
2016/09/18 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python实现转圈打印矩阵
2019/03/02 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
车间主管岗位职责
2013/11/14 职场文书
酒吧员工的岗位职责
2013/11/26 职场文书
出国英文推荐信
2014/05/10 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
大一新生期末自我评价
2014/09/12 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
学生检讨书
2015/01/27 职场文书
销售员岗位职责范本
2015/04/11 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Python面向对象编程之类的概念
2021/11/01 Python