(點選上方公眾號,可快速關註一起學Python)
作者:蘇克1900 原文連結:
https://mp.weixin.qq.com/s/uGG6E-OaW6bWjV8MdkplRA
摘要:微信、知乎、新浪等主流網站的模擬登陸爬取方法。
網路上有形形色色的網站,不同型別的網站爬蟲策略不同,難易程度也不一樣。從是否需要登陸這方面來說,一些簡單網站不需要登陸就可以爬,比如之前爬過的貓眼電影、東方財富網等。有一些網站需要先登陸才能爬,比如知乎、微信等。這類網站在模擬登陸時需要處理驗證碼、js 加密引數這些問題,爬取難度會大很多。費很大力氣登陸進去後才能爬取想要的內容,很花時間。
是不是一定要自己動手去實現每一個網站的模擬登陸方法呢,從效率上來講,其實大可不必,已經有前人替我們造好輪子了。
最近發現一個神庫,彙總了數十個主流網站的模擬登陸方法:
- 知乎
- 微信網頁版登入並獲取好友串列
- Bilibili
- 無需身份驗證即可抓取Twitter前端API
- 微博網頁版
- QQZone
- CSDN
- 淘寶
- Baidu
- 果殼
- JingDong 模擬登入
- 163mail
- 拉鉤
- 豆瓣
- Baidu2
- 獵聘網
- Github
- 爬取圖蟲相應的圖片
- 網易雲音樂
- 糗事百科
這些網站基本採用的是直接登入或者 selenium+webdriver 方式。每一個網站都有完整的模擬登陸程式碼,拿來就可以用到自己的爬蟲中。
下麵我們來測試一下。
先說說很難爬的「知乎」,假如我們想爬取知乎主頁的 HTML 內容,就必須要先登陸才能爬,不然看不到這個介面。下麵來簡單梳理一下流程。
知乎需要手機號才能註冊登陸。為了方便測試,可以隨便找個手機號,手機號到哪兒去找呢,我上週寫的那篇文章就發揮作用了。文章裡介紹了一個免費電話號碼網站,用上面的手機號可以成功註冊。
順利登入後就可以進入主頁了。
下麵,我們用這個庫提供的程式碼來模擬登陸,輸出主頁 HTML 內容作測試。操作很簡單,只需要輸入手機號、密碼和驗證碼就可以了。
成功登陸後,接下來就可以做一些有意思的事了。比如曾有人爬取所有知乎賬號的資訊,分析了知乎使用者群體畫像。
是不是有點意思。
再來看看微信。用上面的微信程式碼可以把全部微信好友資訊爬取下來,比如:暱稱、性別、地域、個性簽名。接著可以分析一下你的朋友圈是什麼樣的,應該會很有趣。
還可以爬 B 站:
還可以爬鏈家租房資訊:
還有很多實用有趣的內容,就不一一羅列了,感興趣的話可以試試,最後放上大神的 GitHub 庫地址:
https://github.com/CriseLYJ/awesome-python-login-model
不要悶頭造輪子,多抬抬頭會發現你在做/想做的東西,別人早已經弄好了,拿來用或者參考學習都是件好事。