Pyqt5-豆瓣机器人(一)

这篇博客是主要为了记录一下之前做过的个人小项目:豆瓣自动发帖机器人。这个项目是同一家北京的公关公司合作的,主要是为了帮助他们自动化评论的发布和点赞功能。(应该是维护账号和刷评论),主要的思路是通过pyinstaller封装好一个基于pyqt5的exe桌面程序,通过简单的ui界面读取excel中的数据,然后通过selenium操作浏览器。

主要技术栈有:

  • pyqt5
  • qtdesigner
  • selenium
  • requests

应用功能主要是有

  • 自动登陆
  • 滑块验证码
  • 随机指定电视剧或者电影
  • 发布指定的评论、星级、标题等
  • 后台读取账户excel
  • 黑名单与白名单等


最终的成品(ui)界面如图:




项目环境:

如果是要开发一个基于pyqt5的桌面应用,那首先第一步是创建项目虚拟环境,因为如果是考虑用pyinstaller去打包的话,pyinstaller会将目标环境中的所有package都封装进exe中,那应用的体积会特别庞大,比如说pandas,就有40几个m。。

我所依赖的包如下:

certifi          2020.12.5
chardet          4.0.0
click            7.1.2
colorama         0.4.4
et-xmlfile       1.1.0
etree            0.0.1
idna             2.10
loguru           0.5.3
lxml             4.6.3
numpy            1.20.2
opencv-python    4.5.2.52
openpyxl         3.0.7
pandas           1.2.4
pip              21.1.1
PyQt5            5.14.1
pyqt5-plugins    5.14.1.1
PyQt5-sip        12.8.1
pyqt5-tools      5.14.1.2
pyspark          2.4.2
python-dateutil  2.8.1
python-dotenv    0.17.1
pytz             2021.1
qt5-applications 5.14.1.1
requests         2.25.1
selenium         3.141.0
setuptools       56.2.0
six              1.16.0
urllib3          1.26.4
win32-setctime   1.0.3
xlrd             2.0.1

QtDesigner

接下来是比较简单有趣的一部分,那就是绘制ui界面,这边我是用的qtdesigner绘制的界面,上手十分简单,估计几分钟看个视频就能学会。

designer做的事情就是帮助你画出一个界面,然后生成一个ui文件,然后通过pyuic去生成界面的py文件,命令如下:

pyuic5 -o ui_mainwindow.py douban_ui.ui

designer界面如下:



这里我想说一下我在使用desinger遇到的坑

  • layout:

layout决定了这个窗口的大小,比如说grid layout和form layout,你可以理解为这是一个自适应的容器,只有至于容器中的元素大小才会随着窗口大小进行改变

  • 元素对象:

元素是designer的灵魂,所有的按钮,input,text,box都需要注意他们的用途和命名,因为这些东西将与你的后台紧密的联系起来


下一篇主要Pyqt5-豆瓣机器人(二)会主要讲pyqt5的架构,多线程,信号与交互。

    欢迎技术探讨