前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

作者头像
小锋学长生活大爆炸
发布2020-08-13 14:13:03
7440
发布2020-08-13 14:13:03
举报

前言

本次分享的是小编经过多日编写的关于自动检测B站Up主视频更新情况,并发送邮件提醒更新的Python程序,代码不专业、部分代码段借鉴网上,仅供参考娱乐!

用到的库

代码语言:javascript
复制
selenium、
_thread、
sys、
time、
re、
os、
bs4、
win32gui/win32con/win32api/winerror、
smtlib、
email、
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

灰色的表示没用到

环境及编译器

Python3.6

PyCharm

效果图

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

本来想做一个GUI,界面做好了,但跟程序连接部分还没搞定:

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

正式开始

一、打开网页

为了简便,使用Python自动化测试工具 -- selenium,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等,小编使用的是火狐。当然,如果不想看到浏览器,还可以使用“phantomjs”,这需要去官网下载exe文件(windows用户)。这两个怎么用不是本文重点,大家可以自行搜索。

以phantomjs为例,启动浏览器:

代码语言:javascript
复制
driver = webdriver.PhantomJS()

打开网页:

代码语言:javascript
复制
driver.get(geturl)

然后通过bs4解析页面:

代码语言:javascript
复制
Soup = BeautifulSoup(driver.page_source,'lxml')

通过F12分析B站页面,并确定搜索规则:

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

随便选的

参考参考小编的代码吧:

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

二、邮箱发送

大部分邮箱对于第三方使用,都要求有授权码来代替密码,以QQ邮箱为例(来自百度经验):

1.登录电脑版QQ邮箱,选择最上方的“设置”

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

2.选择“账户”,切换到账户详情页面。

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

3.在账户页面往下拉,可以看到pop3设置,选择“开启”。

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

4.按照弹出的窗口提示操作进行密保验证。有多种方式可以验证,比如手机令牌等。推荐使用短信验证。

5.按照短信验证的提示发送短信。发送成功后直接点击“我已发送”。

6.弹出的提示中直接显示16位的授权码,可以复制下来,或者是记下来,千万不要记错了。然后点击“确定”。

7.下方的收取选项一般是默认30天的,点击下拉箭头,选择“全部”,并点击页面最下方的保存更改。千万别忘了点击保存,不然之前做的都白费了。

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

然后就可以套用模板编写代码了:

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

三、创建任务栏图标

左击图标隐藏界面,右击图标恢复窗口,左双击图标退出程序

此部分代码量较大,调用了win32官方demo,仅供参考:

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

四、多线程

任务栏显示图标和查询程序相当于是两个独立的部分,通过一条线连接起来。也就是说,运行查询,图标就会卡死、运行图标,查询就会暂停——所以需要用到多线程。Python3.6有_thread和threading模块,本程序用的是简单的_thread,并且没优化(小编边学边做边发稿,没看全呢、),有兴趣的可以优化一下噻~~

五、主函数部分

Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」

六、打包为exe

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

结语

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 用到的库
  • 环境及编译器
  • 效果图
  • 正式开始
  • 结语
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档