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使用clear方法清除字典内全部数据实例
Jul 11 Python
python使用response.read()接收json数据的实例
Dec 19 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
django项目简单调取百度翻译接口的方法
Aug 06 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
python线程池如何使用
May 28 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
Jun 15 Python
Python Selenium模块安装使用教程详解
Jul 09 Python
Python 实现一个简单的web服务器
Jan 03 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
PHP define函数的使用说明
2008/08/27 PHP
PHP中比较时间大小实例
2014/08/21 PHP
JavaScript的Cookies
2008/01/16 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
解决Python3下map函数的显示问题
2019/12/04 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
研究生自荐信
2013/10/09 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
殡葬服务心得体会
2014/09/11 职场文书
业务员辞职信范文
2015/03/02 职场文书
办公室管理规章制度
2015/08/04 职场文书
初中语文教学反思范文
2016/03/03 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers