Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python实现一个带图形界面的爬虫

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

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

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程序设计
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
zeruns
2020/03/23
5K0
Python 的 GUI 开发工具 原
Flexx 是一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档。因为使用纯 Python 开发,所以 Flexx 是跨平台的。只需要有 Python 和浏览器就可以运行。如果是使用桌面模式运行,推荐使用 Firefox 。
晓歌
2018/08/15
7.2K0
Python 的 GUI 开发工具
                                                                            原
Python 笔记:GUI编程(Tkinter)
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:
用户8442333
2021/05/17
5.3K0
你懂GUI?
GUI英文全称(Graphical User Interface)就是图形用户界面的意思。 python GUI库 TKinter:TKinter模块是Python的标准TkGUI工具包的接口。 其实有点像那个网页一样,就是有按钮,输入框,标签,文本等等组成的。
公众号---人生代码
2019/07/24
2.3K0
python学习——图形界面
但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用。本章简单介绍如何使用Tkinter进行GUI编程。
py3study
2020/01/08
3.1K0
python学习——图形界面
原创 | 整理了32个Python图形化界面库
今天给大家分享了一个我觉得很有趣的东西:图形用户界面(Graphical User Interface,简称 GUI)。
程序员晚枫
2022/05/14
7.5K0
原创 | 整理了32个Python图形化界面库
用wxPython打造Python图形界面(上)
有许多图形用户界面(GUI)工具包可以与Python编程语言一起使用。其中三巨头是Tkinter、wxPython和PyQt。这些工具包中的每一个都将与Windows、macOS和Linux一起工作,而PyQt具有在移动设备上工作的附加功能。
AiTechYun
2019/05/13
5.1K0
用wxPython打造Python图形界面(上)
python之图形界面
在编写python GUI程序前,需要决定使用哪个GUI平台。wxpython----跨平台pythonGUI工具包
py3study
2020/01/07
2.3K0
Python 图形化界面基础篇:什么是 Tkinter 以及为什么选择它
Python 是一门强大而多功能的编程语言,广泛用于 Web 开发、数据分析、人工智能等领域。然而,在许多应用程序中,图形用户界面( GUI )是与用户进行交互的主要方式。因此,学习如何创建 GUI 应用程序对于 Python 开发人员来说至关重要。
小蓝枣
2023/09/12
1.3K0
十个顶级Python 图形界面(GUI)框架供你选择
由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专门帮助开发人员构建令人惊叹但高度直观的用户界面,以适应程序应用。
HuangWeiAI
2021/07/07
18.8K0
十个顶级Python 图形界面(GUI)框架供你选择
Python的GUI编程和tkinter,Wxpython
根窗体是图像化应用程序的根控制器,是tkinter的底层控件的实例。当导入tkinter模块后,调用 Tk()方法可初始化一个根窗体实例 root ,用 title() 方法可设置其标题文字,用geometry()方法可以设置窗体的大小(以像素为单位)。将其置于主循环中,除非用户关闭,否则程序始终处于运行状态。执行该程序,一个窗体就呈现出来了。在这个主循环的根窗体中,可持续呈现中的其他可视化控件实例,监测事件的发生并执行相应的处理程序
十二惊惶
2024/02/28
5430
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
用Python开发图形界面有两种方式 一种是用Django或Flash等框架开发网页 另一种是开发桌面应用程序,比如下面这个国际象棋游戏 本文主要讨论图形界面库GUI,最后会告诉你如何选择。 6个最常用的Python图形库 Python有非常多的图形界面库: 这里我们只讨论最常用的6个: PyQt5 经常排在第一位Python图形界面库,基于著名的Qt跨平台图形界面库。自带大量空间,有QtGUI和QtDesigner,可以帮你方便的设计界面。 不过这个是要License的,适合企业级用户或者土豪。
用户8949263
2022/04/08
5.5K0
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
PythonGUI编程|使用Tkinter制作快递查询软件
GUI(图形用户界面)想必大家都不陌生,简单来说就是将代码变成可以交互式操作的界面。在Python中就提供了多个图形开发界面的库,比如Tkinter、wxPython、Jython等,本文将使用Tkinter来制作一个简单的快递查询软件,先来看看效果
刘早起
2020/05/12
1.1K0
python简单图形界面GUI入门——e
感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI设计,现在回顾来看这个如果做正式的展示太过简单,easygui只是小演示之用。
py3study
2020/01/03
1.4K0
Python 图形界面框架 PyQt5 使用指南!
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
快学Python
2021/12/13
8.1K0
Python 图形界面框架 PyQt5 使用指南!
设计一个界面,很简单!
本周,小编给大家分享在Python中如何制作一个简单的图形界面吧,Python里有很多图形用户界面库,如Tkinter, Pmw, wxPython, PySide, PyQt, PyGTk, win32ui, Glade等,在这些库中,小编只会Tkinter、wxPython和PyQt三种库,由于内置库Tkinter最为简单实用,所以就先从它开始吧,其他库以后慢慢介绍吧!接下来,我将给大家简单地介绍一下Tkinter的使用方法。 一、简单说明 首先,我对Tkinter这一模块做一个简要地说明。 Tkint
企鹅号小编
2018/01/22
2.7K0
设计一个界面,很简单!
一个程序员应该怎样学会编写带GUI的程序?
图形用户界面,英文为Graphical User Interface,简写为GUI。
LIYI
2021/02/23
3.2K0
一个程序员应该怎样学会编写带GUI的程序?
在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?
0、前言 有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢…… 其实呢,术业有专攻,Python 擅长的领域在后台服务器、数据处理、科学计算等方面,以及作为一种工具,搞定各种可以自动化的事情。做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。 从诞生伊始,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中
Crossin先生
2018/04/17
4.5K0
在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?
Python开发者必知的13个Python GUI库
Python是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布。Python 的设计着重于代码的可读性。
IT派
2018/07/30
2.6K0
Python开发者必知的13个Python GUI库
【爬虫软件】我用python开发的小红书蒲公英采集软件,支持筛选关键词、粉丝数、报价等,助力品牌商高效筛选优质博主!
蒲公英平台(用过的人都知道^^,没用过的人一脸懵- -!),在此介绍一下:蒲公英是小红书推出的优质创作者商业合作服务平台,致力于为品牌和博主提供内容合作服务,可以为品牌匹配出最符合合作条件的优质博主。
马哥小迷弟132
2024/07/01
6270
【爬虫软件】我用python开发的小红书蒲公英采集软件,支持筛选关键词、粉丝数、报价等,助力品牌商高效筛选优质博主!
推荐阅读
相关推荐
Python图形界面GUI程序设计
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档