首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python实现一个带图形界面的爬虫

Python实现一个带图形界面的爬虫

作者头像
企鹅号小编
发布于 2018-01-08 12:39:15
发布于 2018-01-08 12:39:15
2.9K0
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

Python 是一个很简介高效的语言,许多的 Python 爱好者(包括我在内)都很喜欢用 Python 做爬虫,为什么会喜欢写爬虫,我对爬虫的感觉就是:它能给我带来无限的数据,看着数据一点一点地从网络上保存下来,内心肯定是激动的,感觉每条数据都是一笔钱。当然绝大部分人都不会只爬数据而不做其他的一些处理,因为这么多的数据摆在你面前,它却对你没有用处,所以爬虫获取到的数据有的会被进行处理之后做成网站,更多的是对数据进行分析,由于数据分析在企业中的作用很大,所以数据分析师一直都是一个热门的职业。在我之前发的文章中,大部分也是爬虫,但是这几个爬虫都存在很大的问题,就是爬虫的目标不方便修改,我们通常需要对特定主体的数据进行爬取,而爬虫又不只是一次性的程序,所以需要经常修改爬虫的目标,而我之前做的爬虫都没有直观的方式修改目标,每次修改都需要对程序进行改写,这样做很容易使得程序运行出错,于是今天的爬虫将会具有图形化用户界面,可以直观地指定爬虫目标。

Python 拥有长久的发展历史,GUI 编程也毫不逊色,Python 中有几个常见的图形库。简单介绍一下:

Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。

Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

以上简介摘自菜鸟编程

介绍完 Python 的 GUI 图形库,接下来来介绍一下本文要写的爬虫:

本文的爬虫目标网站是百度百科,百度百科上面对于大多数关键词都用统一的格式拼接 URL,并且最重要的一点就是百科词条的主要内容可以直接通过 HTML 获取,没有经过一些 js 渲染,大幅减少了编写爬虫的难度和复杂度。本爬虫使用的图形库是 Tkinter,这个图形库使用起来简单,缺点就是控件太少,难以做出太复杂又多功能的图形界面,不过这没关系,本爬虫只用到了极少的接口。爬虫 95% 的代码都是实现爬虫逻辑和框架的,所以 Tkinter 的缺点并不影响。

看一下爬虫简陋的 GUI 界面吧:

主要的作用是需要爬取的百科词条可以在文本框内填写,并可以一次填写多项。

由于版面有限,本文只讲解有特点的地方,完整的源代码可以在 Github 上查看并下载运行:https://github.com/JIMhackKING/BaikeSpider,运行时只要在文件夹所在命令行输入:

爬虫可以一次爬取多个关键词,只需要用逗号或分号隔开就行,并且符号不分中英文,这就方便了中英文输入时可以不需要切换中英文符号。实现的代码:

用正则表达式就可以实现了,无论是一种符号输入还是多种符号混合输入都可以正确处理并分割字符串,获取到所有的关键词。这里要对正则表达式语法里面的中文符号进行解码,因为从 Tkinter 的文本输入框控件中获取到的字符串是 Unicode 编码的,如果不处理会导致分割了错的字符串。

在爬虫主调度类SpiderMain中,实现了两个方法:

这两个方法都是爬虫的主调度方法,两个方法的主逻辑相同,只不过一个是单线程运行爬虫,另一个是多线程运行爬虫,多线程的爬虫方法中,内嵌了三个函数:

这三个函数的作用在文档字符串中也已经说明了,爬虫一共用到了两个队列,一个用于存储将要被爬取的 URL,另一个用于存储待解析的 HTML 文档,之后分别创建三个线程运行这三个函数,这样可以使得获取并下载 HTML 和解析 HTML 可以同时进行,减少了大量的 IO 等待时间,并且下载函数使用了五个线程,也就是有五个线程同时下载 HTML ,这可以快速地解决掉大量的待爬取 URL。

由于篇幅有限,本篇爬虫的介绍就到此为止了,其实本文对爬虫的介绍在代码中都已经详细地进行注释说明了,以文字来介绍并讲解一个项目是有难度的,所以最好的阅读方式就是边阅读代码边练习,并通过注释了解每一段代码的作用。

本文来自企鹅号 - 时空密语媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 时空密语媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
十个顶级Python 图形界面(GUI)框架供你选择
由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专门帮助开发人员构建令人惊叹但高度直观的用户界面,以适应程序应用。
HuangWeiAI
2021/07/07
21.2K0
十个顶级Python 图形界面(GUI)框架供你选择
原创 | 整理了32个Python图形化界面库
今天给大家分享了一个我觉得很有趣的东西:图形用户界面(Graphical User Interface,简称 GUI)。
程序员晚枫
2022/05/14
9.3K0
原创 | 整理了32个Python图形化界面库
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
用Python开发图形界面有两种方式 一种是用Django或Flash等框架开发网页 另一种是开发桌面应用程序,比如下面这个国际象棋游戏 本文主要讨论图形界面库GUI,最后会告诉你如何选择。 6个最常用的Python图形库 Python有非常多的图形界面库: 这里我们只讨论最常用的6个: PyQt5 经常排在第一位Python图形界面库,基于著名的Qt跨平台图形界面库。自带大量空间,有QtGUI和QtDesigner,可以帮你方便的设计界面。 不过这个是要License的,适合企业级用户或者土豪。
用户8949263
2022/04/08
6.1K0
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
一个非常简单好用的 Python 图形界面库
前一阵,我在为朋友编写一个源代码监控程序的时候,发现了一个 Python 领域非常简单好用的图形界面库。
somenzz
2020/12/22
3.4K0
一个非常简单好用的 Python 图形界面库
Python 图形化界面基础篇:什么是 Tkinter 以及为什么选择它
Python 是一门强大而多功能的编程语言,广泛用于 Web 开发、数据分析、人工智能等领域。然而,在许多应用程序中,图形用户界面( GUI )是与用户进行交互的主要方式。因此,学习如何创建 GUI 应用程序对于 Python 开发人员来说至关重要。
小蓝枣
2023/09/12
2.2K0
在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?
0、前言 有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢…… 其实呢,术业有专攻,Python 擅长的领域在后台服务器、数据处理、科学计算等方面,以及作为一种工具,搞定各种可以自动化的事情。做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。 从诞生伊始,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中
Crossin先生
2018/04/17
5.2K0
在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?
教你用Python写界面
作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面,python的界面库很多,我认识的并不多,这里只列出几种我认识的
py3study
2020/01/07
5.1K0
教你用Python写界面
【爬虫软件】小红书评论区批量采集,含二级评论
毋庸置疑,小红书是国内流量数一数二的社区种草平台,拥有海量用户和上亿日活,尤其笔记下方的评论区有重大挖掘价值。采集小红书评论数据可以帮助客户了解消费者对商品和品牌的评价和反馈,从而更好地洞悉消费者的喜好、需求和购买意向。通过分析用户评论数据,企业可以及时发现和处理消费者的负面评价和投诉,提升品牌口碑和信誉度。
马哥python说
2024/01/21
2.6K0
【爬虫软件】小红书评论区批量采集,含二级评论
Python 开发者必知的 11 个 Python GUI 库
Python是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布。Python 的设计着重于代码的可读性。
开发者技术前线
2020/11/23
1.7K0
Python 开发者必知的 11 个 Python GUI 库
Python 图形界面框架 PyQt5 使用指南!
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
快学Python
2021/12/13
12.7K0
Python 图形界面框架 PyQt5 使用指南!
python学习——图形界面
但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用。本章简单介绍如何使用Tkinter进行GUI编程。
py3study
2020/01/08
3.6K0
python学习——图形界面
Python GUI编程 | 10分钟轻松学会Tkinter
图形用户界面(GUI)是为用户交互提供灵活性的界面,很多小伙伴都希望把自己的Python小程序都加上一个可视化界面。即美观,又有交互性。常见的Python必备的GUI库有:Tkinter、PyQt5、Kivy、wxPython、PySimpleGUI等等。后续这些有用有趣的模块在快学Python都会陆续介绍的。
快学Python
2021/08/09
11.4K1
Python开发者必知的13个Python GUI库
Python是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布。Python 的设计着重于代码的可读性。
IT派
2018/07/30
3K0
Python开发者必知的13个Python GUI库
python简单图形界面GUI入门——e
感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI设计,现在回顾来看这个如果做正式的展示太过简单,easygui只是小演示之用。
py3study
2020/01/03
1.6K0
Python图形界面GUI程序设计
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
zeruns
2020/03/23
5.9K0
「Python爬虫系列讲解」九、用 Selenium 爬取在线百科知识
前文回顾: 「Python爬虫系列讲解」一、网络数据爬取概述 「Python爬虫系列讲解」二、Python知识初学 「Python爬虫系列讲解」三、正则表达式爬虫之牛刀小试 「Python爬虫系列讲解」四、BeautifulSoup 技术 「Python爬虫系列讲解」五、用 BeautifulSoup 爬取电影信息 「Python爬虫系列讲解」六、Python 数据库知识 「Python爬虫系列讲解」七、基于数据库存储的 BeautifulSoup 招聘爬取 「Python爬虫系列讲解」八、Selenium 技术
荣仔_最靓的仔
2021/02/02
3K0
「Python爬虫系列讲解」九、用 Selenium 爬取在线百科知识
用wxPython打造Python图形界面(上)
有许多图形用户界面(GUI)工具包可以与Python编程语言一起使用。其中三巨头是Tkinter、wxPython和PyQt。这些工具包中的每一个都将与Windows、macOS和Linux一起工作,而PyQt具有在移动设备上工作的附加功能。
AiTechYun
2019/05/13
5.9K0
用wxPython打造Python图形界面(上)
Python 的 GUI 开发工具 原
Flexx 是一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档。因为使用纯 Python 开发,所以 Flexx 是跨平台的。只需要有 Python 和浏览器就可以运行。如果是使用桌面模式运行,推荐使用 Firefox 。
晓歌
2018/08/15
8.1K0
Python 的 GUI 开发工具
                                                                            原
【GUI软件】用python开发油管博主红人采集工具,一键批量爬取,含国家、邮箱等
大家都知道,YouTube(以下简称油管)是全球最大的在线视频社交平台,拥有亿万用户和庞大的日活跃用户群体。平台上来自不同国家和地区的创作者们,蕴藏着巨大的商业潜力。通过分析油管的用户数据,客户能够更深入地掌握这些创作者的最新动态和商业价值,从而更有效地推动业务合作。
马哥python说
2025/04/19
3600
【GUI软件】用python开发油管博主红人采集工具,一键批量爬取,含国家、邮箱等
一个程序员应该怎样学会编写带GUI的程序?
图形用户界面,英文为Graphical User Interface,简写为GUI。
LIYI
2021/02/23
3.7K0
一个程序员应该怎样学会编写带GUI的程序?
推荐阅读
相关推荐
十个顶级Python 图形界面(GUI)框架供你选择
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档