Python之Bilibili自动更新邮件提醒并任务栏图标

前言

本次分享的是经过多日编写的关于自动检测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

结语

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180207G1F85X00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励