前言
? ? ? ? 剛學(xué)習(xí)了Python爬蟲涂籽,想找個項目練習(xí)一下,于是嘗試使用Python自動幫我更新新浪微博。在實現(xiàn)的過程中遇到了很多問題坚俗,不斷解決的過程中確實很好地鍛煉了自己的編程能力禽作。生活需要儀式感當(dāng)然也需要成就感尸昧,用學(xué)到的知識去做一些有趣的事情也是激勵我們不斷學(xué)習(xí)下去的動力~
? ? ? ? 我把自動發(fā)送微博分成了以下三步:
? ? ? ? 一.自動登錄新浪微博;
? ? ? ? 二.通過爬蟲獲取微博發(fā)送內(nèi)容旷偿;
? ? ? ? 三.自動發(fā)送烹俗。
? ? ? ? 下面我們就來分別說說怎么分別實現(xiàn)這幾個步驟。
1.自動登錄新浪微博
? ? ? ? 這里使用到了一個自動化測試工具——Selenium(Python中提供了Selenium庫)狸捅。簡單來說衷蜓,Selenium可以像真人一樣打開瀏覽器并操作網(wǎng)頁中你想要操作的元素,使用這個工具可以很方便地幫助我們完成網(wǎng)站的登錄操作尘喝。使用前磁浇,你需要完成以下準(zhǔn)備工作:
安裝Selenium
?????????在命令行中,輸入“pip install selenium” 即可:
下載瀏覽器朽褪,建議使用Firefox
下載geckodriver
????????下載地址:https://github.com/mozilla/geckodriver/releases置吓,根據(jù)自己的電腦選擇合適的版本无虚,筆者下載的是Windows系統(tǒng)64位版本。
? ? ? ? 下載好后解壓衍锚,放在Python的scripts目錄下友题,如圖所示:
????????現(xiàn)在我們看看Python中如何使用Selenium來操作瀏覽器實現(xiàn)自動登錄:
????????這里選擇了用QQ登錄新浪微博,因為直接登錄可能會遇到驗證碼問題戴质,新浪微博的驗證碼筆者目前還沒有研究過如何破解度宦,而QQ的滑動驗證相對來說是比較好破解的,上述代碼中的“slip_verify()”是自定義的一個函數(shù)告匠,用于破解QQ登錄過程中可能出現(xiàn)的滑動驗證戈抄,代碼如下:
2.通過爬蟲獲取微博發(fā)送內(nèi)容
????????以爬取果殼網(wǎng)首頁的文章為例,代碼如下:
? ? ? ? 上面這段代碼從果殼網(wǎng)首頁獲取了一篇文章(包括標(biāo)題和鏈接)后专,長這樣:
????????【科技】除了猜想划鸽,黎曼還有哪些不為人知的故事?https://www.guokr.com/article/445628/
3.自動發(fā)送微博
? ? ? ? 登錄成功戚哎、獲取素材都搞定了裸诽,現(xiàn)在只差把這些內(nèi)容發(fā)送出去。我們已經(jīng)知道通過Selenium可以操作網(wǎng)頁元素型凳,那么現(xiàn)在只需要完成兩個動作微博就可以順利發(fā)出去了:將內(nèi)容輸入到文本框丈冬;點擊“發(fā)布”按鈕。實現(xiàn)代碼如下:
結(jié)語
? ? ? ? 結(jié)合這三步啰脚,如果我們從多個網(wǎng)站獲取素材殷蛇,再加上一些循環(huán)條件就可以每天定期更新自己的微博啦。時間有點晚還在肯德基橄浓,準(zhǔn)備回家咯粒梦,回頭會把整個程序的源代碼貼出供大家參考,謝謝啦~