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
結語
※練習 13-15 Learn Python 3 The Hard Way
※Python3爬取1024圖片
TAG:Python |