Python爬虫之GUI图表

关于Python爬虫系列的这篇文章我很早就想写了,但由于我前两周一直在研究vscode插件开发方面,就没去写文章。所幸目前vscode插件开发的知识了解的差不多了,是时候写了,哈哈。需要说明的是,我并非专业Python开发人员,只是在实际开发中需要用到一些数据爬取,所以就学了Python语言。所以接下来的阐述基本都是我学Python语言的一些注意的地方。

Python目前是很主流的编程语言,相信各位同僚多少都知道一些,其中很重要的一点是容易上手。的确,我是专攻C/C++的,起初接触Python语言的时候,就觉得方便很多,基本不用自己造轮子。比如要完成一个http请求,Python就一行;C/C++就很麻烦(创建Socket、建立TCP链接、封装HTTP协议字段。。。)。反正就是用Python开发某些功能(尤其是数据处理方面)很方便很多。下面我说一下我是怎么入手Python的,如果你是非开发人员建议不要采纳我下面的学习方法,直接去看相关书籍从基本入手。如果是开发人员,有过程序开发的底子当然不需要从最基本开始,可以跳过某些过程,建议伴随实际小项目学习。当时是接了一个爬取数据的活,当时的我从没有接触过python语言,对我来说是一个新手。我主要从下面三个方面进行学习并且完成项目开发。

一是语法
首先,需要知道python的语法,确保程序能运行成功,没有语法错误。基本主流的编程语言语法都差不多,不是很反人类的(像C、C++、PHP、Python、C#、Java、Javascript等),所以这一方面不要一个小时,语法基本就融汇贯通的了。像有些很优秀的IDE,如果你写的代码有语法错误,都能给你修复(例:Pycharm)

二是逻辑
关于逻辑,我也称之为编程思维。有过编程经验的同僚,这个基本不占用时间,知道需要哪些包及调用哪些包里的函数后,这个就直接可以是实现了。

三是功能
这方面是最耗时的。python之所以方便,就是因为这门语言有很多工具包,我们在编写程序的时候很多功能不需要自己实现,调用别人写好的工具包就很容易实现。但对于初学者来说,就是不知道有哪些工具包,以及工具包里有哪些功能。这里我推荐的方法(也是我采取的方法),需要什么功能的时候去网上搜索,而且关于Python的资料网上很多,很容易找到你想要的。比如:当时需要爬取url的表格数据,这里需要用到re和bs4工具包,re用于请求下载网页内容,bs4用于解析html等。

所以准确来说,这个项目(学会Python语言)用了不到两天就完成了。当然,这里我没有说明Python的环境搭建,其实也挺容易的,网上有很详细的教程,这个可以去搜索。不是有句话么,一个项目完成了环境搭建,基本就完成一半了。哈哈

上面主要说的是学会用Python完成一些小的项目程序,但如果你想更上一层楼,去编写更复杂的项目,对项目代码上能有条理的管理,得会面向对象编程。我在初学Python语言的时候,在网上搜索的Python案例实现基本都是过程化编写的,并非对象对结构编写的,所以我当时以为Python语言结构上就像C语言那样,都是面向过程化的。过程化的缺点就是不好管理,当我去网上搜索Python对象的时候,也是有相关案例,也有class能像C++那样继承、派生、实例化以及静态函数编写等,所以我之后才知道Python语言结构更像C++语言那样,既可面向过程,也可面向对象。

以上就是我在学Python语言的一些建议及心得,祝同僚加油!下面我说一下Python自带的GUI模块----TK模块

上面的Python语言相关内容基本都是在控制台可见的,并不能输出到窗口显示。下面我将对Python窗口编程进行说明,熟悉Win32 GDI的程序员(或者熟悉MFC、Java的Swing工具包),都很容易上手。不熟悉上述的也没关系,也很容易上手。Python语言的GUI模块有多种,我只学了TK模块。学这个TK模块的初衷是为了将爬取的数据做成图表进行直观分析。网上有关于TK模块的资料和小案例,但是功能不全。我这里只说明部分网上找不到的内容(下面只给出效果图和说明,给出代码没有多大意义),最后我也会附上个人觉得不错的资料链接和我实现的demo源码。

1.窗口多面板卷动;
在这里插入图片描述

窗口中绘制了多个canvas,通过卷动上图中标记的窗口卷动列实现卷动

2.动态改变组件属性;
在这里插入图片描述

通过点击上面的颜色模式切换,就会动态更换属性(填充颜色,字体等)

3.组件的嵌套使用;
在这里插入图片描述

上图中有多组件嵌套,这里没法标记,还是请同僚去读相关对应的代码

4.外设事件(鼠标、键盘)捕获;
在这里插入图片描述

上图中鼠标触发到各个扇形区域,就弹出相关的提示面板。

其实还有很多网上找不到的问题,都是我经过大量实验才实现的,所以想学的TK模块的同僚,之后可以去下载我提过那个的demo源码,这样对应的学习会走不少弯路。以上的统计图我都是做的是二维,感兴趣的同僚可以去拓展三维,多维。。。

最后,给大家简单科普一下的Python爬虫无Chrome头浏览器的使用。如果我们用常规的爬取方法只能捕获到静态网页数据的内容,通过js动态渲染的内容,我们无法捕获到。所以可能会有同僚常常会问,为什么我爬取的网页内容怎么和Chrome浏览器的源码内容不一样呢?这就因为你没有爬取到js动态渲染的内容。这里我不对无头浏览器的环境安装进行说明,网上有教程能搜到。无头浏览器,其实通过使用不带图形界面的Chrome运行网页,实则是通过浏览器的内核程序对网页进行渲染,所以不同内核的浏览器,有不同的爬取动态网页的方法。但是都是运行不带图形界面的内核程序对网页进行渲染之后再爬取的。常规的方法是通过http请求的,只会下载相关的js代码,不会去运行js代码。所以这就是为什么无头浏览器能爬取动态网页了。而且,使用无头浏览器还可以个用户收到触发js代码和相关事件,这为自动化测试提供了基础(如果你是网站开发人员,测试的时候可以考虑一下,嘿嘿)。最最最最最最后,提醒爬虫的人员,爬去大型网站数据的时候看一下该网站的Robot协议,看看允不允许爬取,不要非法’窃’取数据,一不小心就可能去蹲局子了,哈哈(这种例子还是有多的)。本来出发点是好的,不要搞得不值当啊,祝同僚学习成功!

TK资料链接:https://blog.csdn.net/ahilll/article/details/81531587
TK源码demo链接:https://pan.baidu.com/s/1liX9q1MDIG2oqDjq4wsPzg 提取码:d7wv

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值