python爬虫如何制作可视化界面?(pyqt5环境配置篇)

  • A+
所属分类:Python合集

pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具

 

前言:

最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具,开始以为百度贴吧没有“全吧搜索”这样的功能,后面发现是我多虑了,于是把重心转移到了可视化小程序的制作方面,爬虫相关逻辑则直接找了现成的....

 

现在来记录一下踩的坑:

我基本把所有网上制作python可视化的教程都看了一遍,最后发现所有的教程如出一辙,都是一个模子刻出来的。并且一篇原创,十篇以上的转载。这里我要多插几句话,打个比方,在CSDN某大佬发布的一篇教程,会被CSDN的其他博主,博客园,简书,个人博客等等等等全部转载一遍,并且他们还不转载全,缺胳膊少腿,很多关键性步骤给跳过,有些说明自己给乱改一通,我都怀疑他们会不会写程序,看没看懂,就为了点击率给转过去,服气!

 

给python爬虫上界面网上真心没什么太多教程,这也是我之前想把我的那些小爬虫做成工具没有做出来的原因,百度搜不到教程啊!不过难得这次有闲情逸致,就再次查阅了大量资料,了解到网传大致两种方法,一是通过图形库敲代码手动绘制,二是通过一些框架来做壳子,而两者的代表分别是Tkinter和PYQT5。tkinter其实很适合新人做一些不是很复杂的界面,几个框框按钮,几行文本足以支持做出大多数小工具了,而PYQT5的使用需要一定的学习成本,肯定是高于前者的,不过他的使用相对其他框架也简单很多,反正也就是拖拽几下,然后学习一下布局和属性什么的(很烦),就可以上手了。好在博主大一的时候学习过QT Designer,这次就决定使用pyqt5制作了。

 

然后pyqt5+pycharm+qtcreator的环境就弄了一天........

 

那么关于环境配置,目前网传的所有教程基本都是如下流程,因为篇幅有限,我只写一个大致的流程,因为他们真的都如出一辙,具体的我会放出我收藏的几个有代表性的教程的链接:

1.Python3.7安装

这一步没什么好说的,现在py3有直接安装的exe程序了,比我当初安装py2方便太多...建议安装默认路径,直接放c盘吧,不然后面你懂的。

 

2.安装pycharm

python编程比较好的idle了吧,而且我也一直使用的它,所以这次配环境也不需要操心这个。

 

3.安装PyQt5,这个也简单,直接万能pip命令。

 

4.把安装好的pyqt5环境配置的pycharm中。

 

5.配置完成可以看到Pycharm的菜单栏中的Tools-External tools里可以看到新增的外部工具。

 

6.打开Qt designer手动拖拽出ui界面,保存后会生成.ui文件,然后用之前的工具自动转成.py

 

7.将ui的py文件和爬虫逻辑关联起来,就可以完成你的爬虫小工具了。

 

下面开始讲配置过程中遇到的坑:

1.网上的教程只说了安装pyqt5,然后在后面把它导入到pycharm的过程中我死都没发现他们教程里面说的pyqt5的文件夹里面有一个designer.exe文件,后面终于知道还需要pip 一个pyqt5-tools,然后他才会出现在pyqt5的文件夹里。或者你可以直接下一个对应版本的qt,安装之后也有designer.exe,可是教程里面没说啊,还好我聪慧自己解决了。

 

2.Qt的各种ui控件手动布局设置方式,如何让他们在你想要的位置并且能自适应窗口大小........嗯,我到现在都还没有解决。

 

3.ui文件转成py文件之后是不能直接运行的,需要加一个入口main函数,网传版本大致如下:

 

  1. import myUI
  2. from PyQt5.QtWidgets import QApplication, QMainWindow
  3. import sys
  4. if __name__=='__main__':
  5.     app = QApplication(sys.argv)
  6.     MainWindow = QMainWindow()
  7.     ui = myUI.Ui_MainWindow()
  8.     ui.setupUi(MainWindow)
  9.     MainWindow.show()
  10. sys.exit(app.exec_())

然后我复制过去这个QMainWindow()函数是无法识别的,然后其他版本还有什么QWidget,QDialog什么的。这就让人头疼了,不过好在博主在坑里躺了一段时间,突然想起来当初学了Qt的,也有这个问题。然后想起来大概在qt里面这三者都是对话窗口类,但是都是有却别的,也有什么父子之分好像。最后经过尝试,将上面的改成QWidget.QMainWindow()就能正确识别函数了。这个还是应该跟你创建ui时候选择的窗口有关,也要注意它自动生成的py文件导入了哪些,有哪些可能是没导入的要加上。反正如上代码的app,ui,window这几个变量加上,就能正确显示你设计的窗口了,其他每个教程的内容不一样,会有些许出入,灵活变通就好~

 

以上,不想再写了,有问题留言吧,后面把小工具做出来了再写一个实战篇吧。

 

另外有一个感触,真正的技术大佬(我是小白,也有这个感受)是不屑于一字一句来细细写文章讲清楚每一处的(内心os:实现功能已经很累了,你居然让我再梳理了讲一遍??)而那些点击率高的水文又恰恰是那些不懂技术的营销博主偷来的,他们自己也看不懂,下面却有一堆小白问这问那,这就很尴尬了....不过确实,学完一个东西还是要整理一遍的,把这些杂糅的知识系统性的梳理一遍也不容易呀!但最后对自己还是能进一步的提高,加深印象,后面忘了也好捡起来,继续加油吧~

HeyBy

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: