专栏首页小锋学长生活大爆炸Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

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

使用pyinstaller进行打包,注意如果要将exe分享给伙伴们,记得将phantomjs也放在同一文件夹下,再压缩包发出去。如何使用pyinstaller进行打包,可以参考小编之前发过的文章,可进入小编主页查找。

结语

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于信息论的编码技术

    信息论是通过应用密码学、概率论、信息熵、通信系统、随机过程等方法,来研究信息的传输、提取和处理系统的一门学科。而编码技术研究的主要内容是如何既可靠又有效地传输信...

    小锋学长
  • [Python] 豆瓣自动回帖、顶帖源码

    https://github.com/1061700625/auto_douban

    小锋学长
  • PID算法原理、调整规律及代码

    比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

    小锋学长
  • 如果把薇信换成计算器,你女友还能找到?

    忘记哪一年我用着诺基亚5233的时候,那时是塞班系统那时的系统,字体,软件的图标啥的,都拿出来修改了一遍,那时候感觉自已特棒,哈哈....自吹了一下。

    IT小侠公社
  • 如何替换一个 exe 的图标

    有小伙伴写了一个诡异的程序,我想要他修改这个程序的图标,但是他觉得我的图标不好看,就不修改。但是我觉得他的图标不好看,我没有他的源代码,我如何拿到他程序修改他的...

    林德熙
  • 微服务RESTful接口文档生成神器Swagger初探

    在微服务构建的过程中,你也许发现写的那些restful风格的接口需要编写文档。 文档一般包括要输入哪些参数,哪些参数是必填的,哪些是选填的。还有返回结果的格式...

    ImportSource
  • Fiddler抓包5-接口测试(Composer)

    前言 Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,当然fiddler做接口测试也是非常方便的。 对于没有接口测试文档的时候,可以直...

    上海-悠悠
  • 安卓微信6.0.2更新 自定义表情可同步字体大小能修改

      微信 6.0.2 for Android 全新发布,自定义表情可同步了,解决你换手机表情都没了的烦恼;微信字体大小也能调整了,近视老花必备良品;视频聊天窗口...

    ytkah
  • Java如何优雅获取泛型类型

    在 Java 开发中,获取泛型这种操作虽不是很常用,但有时确实必须的,比如 将Json 字符串反序列化成对象的时候。今天就来介绍这个操作。

    黄泽杰
  • Java如何优雅获取泛型类型

    在 Java 开发中,获取泛型这种操作虽不是很常用,但有时确实必须的,比如 将Json 字符串反序列化成对象的时候。今天就来介绍这个操作。

    好好学java

扫码关注云+社区

领取腾讯云代金券