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進行打包,可以參考小編之前發過的文章,可進入小編主頁查詢。