产品研发:PyQt5爬虫程序

爬虫产品演示

项目介绍:项目主体为使用PyQt5制作的应用程序。拥有前端(pyqt5制作)窗口、后端(纯Python)接口功能、数据存储(sqlite3)可嵌入式(.db)数据库等主要技术;涉及到账户密码等的还有数据(cryptography)加密解密需求;爬虫功能常规使用requests库获取接口数据,非常规的也有使用Server-Sent Events(SSE)这种用于实现服务器向客户端实时推送数据的Web技术的反向使用;如需发送聊天窗口(主要对象为:微信或QQ)消息的也有使用pywin32库的技术。

技术概览:PyQt5、sqlite3、cryptography、requests、pywin32、pandas、threading、ntplib、queue、re、sys

功能主体:

        1.使用PyQt5制作各个窗口UI界面;

        2.涉及账户操作的使用cryptography对数据进行加密/解密数据;

        3.确定使用requests确定爬虫功能;使用SSE技术确定实时获取接口数据功能;

        4.使用pywin32相关制作发送消息到微信或QQ聊天窗口的功能;

        5.使用sqlite3制作从DB数据库中获取数据与增删改数据的功能;

        6.使用pandas主要是负责解析表格文件,用以批量创建新账户;

        7.使用ntplib目的时制作一个简单强制的定时安全验证;

        8.使用threading为各个需要长时间运行的功能单独开启线程运行,不妨碍主线程窗体;

        9.使用re、queue、sys等库对各个功能进行辅助。

​​​​​​​

功能流程:

        主体程序运行流程:

                启动应用程序后==打开==>>一个提示框;用以展示程序已启动,提示框会自动关闭并打开主程序入口==打开==>>登录窗口界面;需要输入账号密码进行账户验证,只有验证通过的账号才能进入主程序界面,否则弹窗提示失败原因==打开==>>主窗口界面(主窗口可以跳转各功能窗口但想要使用前提是需要满足条件)

                主程序界面功能划分:

                        一、实时显示当前日期与时间,定时播报与安全验证;

                        二、菜单栏提供使用手册查看、关于联系方式信息查看、账号信息查看和设置爬虫功能的请求参数;

                        三、账号信息中显示的有效时间的有无是验证用户是否能使用主窗口界面中的爬虫功能和数据库功能的关键;只有管理员才能更新账号信息;

                        四、管理员账号登录时,可以在菜单栏中原本的账号信息一栏打开账户管理系统,以方便对所有账户进行管理操作;可查询所有/特定账户信息、新增单个账号/多个账户信息、删除已有账户信息、更新账户信息(更改使用时间)等;普通会员登录只能查看登录账号的信息;

                        五、主窗口界面中的爬虫功能和数据库功能若想使用,除了需要登录账号有可用时间之外,还需选择游戏对象和设置请求参数;其中,选择游戏对象还必须先设置请求参数,否则将无法选择游戏对象成功;

                        六、设置请求参数时,可以选择四种参数样式进行设置,分别是:登录状态的请求参数+不使用IP代理的模式、未登录状态的请求参数+不使用IP代理的模式、登录状态的请求参数+使用IP代理的模式、未登录状态的请求参数+使用IP代理的模式,四种设置模式中只需任选一种设置即可,并且设置完成后还会自动跳转回主窗口界面,无需手动切换;

                        七、在设置完成请求参数后,即可选择想要操作的游戏对象,基本上涵盖了目标网站上的所有游戏都可选择,并获取其最新的数据;

                        八、在选择游戏后,即可打开并使用爬虫功能和数据库功能;爬虫功能包括获取游戏对象“特定页中的所有数据、当天最新更新的所有订单数据、实时获取当天最新更新的订单数据”;数据库功能包括对游戏对象已获取并保存的数据进行“查询、自定义新增、自定义修改、删除原有订单”等的操作,还可以将还未发送过聊天窗口消息的订单转存到已发送过消息的数据库中,当然反过来操作也行,删除订单信息是按照是否有选中作为删除标准的,要是感觉保存的数据量太大是有提供清空数据库的选项的(真要删建议先自己保存一份再清空,数据无价删除不在);

                        九、爬虫功能窗口详解:

                                主要功能分为:获取用户自定义页码的所有订单数据、获取即刻起当天更新的所有订单数据(直到获取完当天的订单数据为止自然停止)、实时监控并获取当天最新更新的订单数据,当然在这些功能运行期间是能选择是否使用发送消息到特定聊天窗口的;还有检查是否有成功获取请求参数和强制初始化所有功能的功能按钮;

                                获取用户自定义页码的所有订单数据功能详解:

                                        使用后即可获取特定页码的所有订单数据,不仅如此,还有配套的单独操作获取回来的订单数据功能:发送选中的订单数据、保存选中的订单数据、清除所有选中的订单等;

                               获取即刻起当天更新的所有订单数据功能详解:

                                         使用后会在后台单独开启一条线程专门运行该功能,该功能主要目的是获取当天在启动时间之后的所有已发布的新订单信息,期间是否有选择发送消息功能影响线程是否进入发送消息的处理流程中,该功能与获取用户自定义页码的所有订单数据功能不同是其不但获取数据且会保存获取到的数据,而获取用户自定义页码的所有订单数据功能是只获取数据不进行保存数据的;

                             实时监控并获取当天最新更新的订单数据功能详解:

                                         使用后会在后台单独开启一条线程专门运行该功能,该功能主要目的是监控最新更新的订单数据并保存,且根据是否有选择发送消息功能决定是否将已获取的最新订单数据给到发送功能进行发送;并且还有配套的关闭实时监控功能的按钮;

                                所以如果要使用爬虫功能窗口中的强制初始化的功能,虽然结果是能将这些后台启动的线程关闭掉,但已经在运行的功能想要关闭需要时间,这个时间就是要将线程内的任务都处理完,只有等到线程中的所有已开的任务都处理完了才会完全关闭线程。

                        十、数据库功能窗口详解:

                                主要功能分为:查询数据库中的数据、删除数据库中的数据、新增数据、保存新增数据或修改过的数据;

                                操作的数据库对象包含有两个:爬虫获取数据保存下来的爬虫数据库与发送爬虫获取下来的订单数据并保存的发送数据库;

                                每个数据库都有三个相同的独立操作功能:新增数据行、清空数据库、保存修改(无论是新增的订单数据行还是修改原订单数据行的操作都会重新保存过)

                                拥有三个共同操作两个数据库的功能:查询数据(可选择使用筛选条件)、删除选中的订单、将选中的订单转存到另一个数据库;删除和转存操作生效的前提是选中订单数据行;查询操作是两个数据库都一起针对的,筛选条件有两个可任选那一个使用或者两个一起使用都可以的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值