前言
本次分享的是小编经过多日编写的关于自动检测B站Up主视频更新情况,并发送邮件提醒更新的Python程序,代码不专业、部分代码段借鉴网上,仅供参考娱乐!
用到的库
selenium、_thread、sys、time、re、os、bs4、win32gui/win32con/win32api/winerror、smtlib、email、
灰色的表示没用到
环境及编译器
Python3.6
PyCharm
效果图
本来想做一个GUI,界面做好了,但跟程序连接部分还没搞定:
正式开始
一、打开网页
为了简便,使用Python自动化测试工具 -- selenium,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等,小编使用的是火狐。当然,如果不想看到浏览器,还可以使用“phantomjs”,这需要去官网下载exe文件(windows用户)。这两个怎么用不是本文重点,大家可以自行搜索。
以phantomjs为例,启动浏览器:
driver = webdriver.PhantomJS()
打开网页:
driver.get(geturl)
然后通过bs4解析页面:
Soup = BeautifulSoup(driver.page_source,'lxml')
通过F12分析B站页面,并确定搜索规则:
随便选的
参考参考小编的代码吧:
二、邮箱发送
大部分邮箱对于第三方使用,都要求有授权码来代替密码,以QQ邮箱为例(来自百度经验):
1.登录电脑版QQ邮箱,选择最上方的“设置”
2.选择“账户”,切换到账户详情页面。
3.在账户页面往下拉,可以看到pop3设置,选择“开启”。
4.按照弹出的窗口提示操作进行密保验证。有多种方式可以验证,比如手机令牌等。推荐使用短信验证。
5.按照短信验证的提示发送短信。发送成功后直接点击“我已发送”。
6.弹出的提示中直接显示16位的授权码,可以复制下来,或者是记下来,千万不要记错了。然后点击“确定”。
7.下方的收取选项一般是默认30天的,点击下拉箭头,选择“全部”,并点击页面最下方的保存更改。千万别忘了点击保存,不然之前做的都白费了。
然后就可以套用模板编写代码了:
三、创建任务栏图标
左击图标隐藏界面,右击图标恢复窗口,左双击图标退出程序
此部分代码量较大,调用了win32官方demo,仅供参考:
四、多线程
任务栏显示图标和查询程序相当于是两个独立的部分,通过一条线连接起来。也就是说,运行查询,图标就会卡死、运行图标,查询就会暂停——所以需要用到多线程。Python3.6有_thread和threading模块,本程序用的是简单的_thread,并且没优化(小编边学边做边发稿,没看全呢、),有兴趣的可以优化一下噻~~
五、主函数部分
六、打包为exe
使用pyinstaller进行打包,注意如果要将exe分享给伙伴们,记得将phantomjs也放在同一文件夹下,再压缩包发出去。如何使用pyinstaller进行打包,可以参考小编之前发过的文章,可进入小编主页查找。
结语
如果需要本程序的exe文件,可以进入https://pan.baidu.com/s/1mkl96NA 密码:v2w0。若链接失效,希望大家及时提醒小编进行更新。