前言

今天教大家用户Python GUI编程——tkinter 打造一个小说下载器,想看什么小说,就下载什么小说

先看下效果图

Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口。

作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。

开发环境

版 本:anaconda5.2.0(python3.6.5)

编辑器:pycharm

本次目标

爬取笔趣阁小说,使用 tkinter 打造一个小说下载器

http://www.xbiquge.la/

先设计一个图像化的界面

代码

from tkinter import *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()

效果如下图

开始小说网站的爬虫代码

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

然后通过解析网站数据,获取第一个小说的详情页URL即可。

静态网页的爬取,缺点是不大的。

defsearch():

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地址都包含在dd标签里面。

2,获取url后,需要拼接

'/23/23019/11409705.html' #这是网页获取到的url

'http://www.xbiquge.la/23/23019/11409705.html' #这是真实的小说章节内容url地址

3,小说名字,直接获取即可。

defdownload_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 inurls:

chapter_url= 'http://www.xbiquge.la' +urlprint(chapter_url)

保存下载每章小说内容

defdownload_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 incontent:

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

再来个显示下载内容

defnovel_load(title):

text.insert(END,'正在保存:{}'.format(title))#文本框滚动

text.see(END)#更新

text.update()

最后你还可以把代码给打包成exe文件,分享给你的朋友们用

如果有想要这个程序的小伙伴记得私信我

这个是本篇文章的视频版,详细讲解本次案例步骤,大家可以学习下

https://www.bilibili.com/video/BV13a4y1E7Tb

python 小说下载工具_使用tkinter打造一个小说下载器,想看什么小说,就下什么...相关推荐

  1. java扫雷随机地雷_原创扫雷(未添加随机分布地雷),想看就进来看下吧

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 里面涉及的知识主要是递归和数组 */ #include "stdio.h" #include "conio.h&quo ...

  2. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  3. 用Tkinter打造自己的Python IDE开发工具(1)建立一个简单的代码编辑器

    用Tkinter打造自己的Python IDE开发工具(1)建立一个简单的代码编辑器 很多Python初学者,安装完Python后,已经包含了IDLE代码开发和调试系统.都会再安装各种Python开发 ...

  4. 用Tkinter包装一个音乐下载爬虫

    用Tkinter包装一个音乐下载爬虫 前言 一.模块 核心模块: 辅助模块: 路人模块: 二.程序 1.思路区块介绍 1)header 部分 2)article 部分 3)footer 部分 2.源代 ...

  5. IDM下载器|Windows系统经典下载工具idm6.41|IDM如何在线视频下载工具 |下载视频教程

    IDM全称Internet Download Manager,是一种将下载速度提高最多5倍的专业下载工具,支持大部分文件格式下载和基本所有的下载链接,无视网址本身下载限速,直接达到电脑该有的网速. 下 ...

  6. 通俗易懂【Springboot】 单文件下载和批量下载(多个文件合成一个压缩包下载)

    文章目录 一.单文件下载 1.简单理解文件下载 2.单文件下载的具体代码实现 3.测试 4.单文件下载整体代码 二.多文件批量下载(多个文件合成一个压缩包下载) 1.多文件下载的实现方式,这里使用了Z ...

  7. python 小说下载工具_下载代码python之小说下载器

    时光紧张,先记一笔,后续优化与完善. 首先声明,我写这个是为了练手,我不看小说了.因为眼睛近视太厉害了,我连手机都不玩了. 小说下载器的目标是为了解决当初市面上能下载最新小说的网站是在太少了,但是在线 ...

  8. python积木编程软件_积木编程软件手机版下载

    积木编程软件是可以在线可以学习编程的软件,平台给用户提供了大量的编程学习教程,软件还支持在线编程,学习内容丰富,让用户学习起来不会枯燥乏味,就算你是零基础的小白,也可以体验到编程的乐趣. 积木编程官方 ...

  9. python模块版本管理工具_【转】Python包管理工具

    Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...

最新文章

  1. 《中国人工智能开源软件发展白皮书(2018)》(附下载及解读PPT)
  2. 最短路径之Spfa算法
  3. Robot Framework-Ride界面介绍及库的添加
  4. 程序员都怎么过端午节?
  5. 十个不可不看的Matlab GUI
  6. Angular4.x 安装|创建项目|目录结构|创建组件
  7. thymeleaf 获取yml中的值_Thymeleaf前后端传值 页面取值与js取值
  8. 微信小程序优购商城项目总结
  9. 自动识别语音生成字幕
  10. 为什么大家都说SELECT * 效率低
  11. 【电子知识摘要】合金电阻
  12. 2018年交通运行年报发布,深圳交通高质量发展取得新突破
  13. 写个简单的chrome插件-京东商品历史价格查询
  14. JavaScript window对象之atob()和btoa()
  15. 书签同步工具android,「效率工具推荐」跨平台在线云书签管理工具
  16. Prometheus监控模板
  17. 【知识学习】马氏距离 Mahalanobis Distance
  18. 无锁队列的实现 | 酷壳 - CoolShell.cn
  19. 【面试题-算法思想】如何从包含大量URL的A,B文件中找到相同的URL?
  20. 蛇形印刷天线设计实战

热门文章

  1. IK Analyzer
  2. linux RAID磁盘阵列管理和逻辑卷(8/21)
  3. 黑龙江省七台河市谷歌高清卫星地图下载
  4. 汇川H5U PLC通过 EtherCAT总线控制伺服回原
  5. 苹果屏蔽更新_iOS 13终于可以一键屏蔽系统更新了,完美
  6. Python课程内容回顾
  7. C语言+CE修改植物大战僵尸阳光
  8. HC32L110国产超低功耗华大MCU芯片介绍
  9. MySQL数据库程序设计(二)
  10. wordpress最佳架构_2020年最受欢迎和最佳WordPress主题(专家精选)