當前位置:
首頁 > 知識 > 用 Python 登錄主流網站,我們的數據爬取少不了它

用 Python 登錄主流網站,我們的數據爬取少不了它

機器之心編輯

項目作者:CriseLYJ

不論是自然語言處理還是計算機視覺,做機器學習演算法總會存在數據不足的情況,而這個時候就需要我們用爬蟲獲取一些額外數據。這個項目介紹了如何用 Python 登錄各大網站,並用簡單的爬蟲獲取一些有用數據,目前該項目已經提供了知乎、B 站、和豆瓣等 18 個網站的登錄方法。

項目地址:https://github.com/CriseLYJ/awesome-python-login-model

作者收集了一些網站的登陸方式和爬蟲程序,有的通過 selenium 登錄,有的則通過抓包直接模擬登錄。作者希望該項目能幫助初學者學習各大網站的模擬登陸方式,並爬取一些需要的數據。

作者表示模擬登陸基本採用直接登錄或者使用 selenium webdriver 的方式,有的網站直接登錄難度很大,比如 qq 空間和 bilibili 等,採用 selenium 登錄相對輕鬆一些。雖然在登錄的時候採用的是 selenium,但為了效率,我們也可以在登錄後維護得到的 cookie。登錄後,我們就能調用 requests 或者 scrapy 等工具進行數據採集,這樣數據採集的速度可以得到保證。

目前已經完成的網站有:

Facebook

無需身份驗證即可抓取 Twitter 前端 API

微博網頁版

知乎

QQZone

CSDN

淘寶

Baidu

果殼

JingDong 模擬登錄和自動申請京東試用

163mail

拉鉤

Bilibili

豆瓣

Baidu2

獵聘網

微信網頁版登錄並獲取好友列表

Github

爬取圖蟲相應的圖片

如下所示,如果我們滿足依賴項,那麼就可以直接運行代碼,它會在圖蟲網站中下載搜索到的圖像。

如下所示為搜索「秋天」,並完成下載的圖像:

每一個網站都會有對應的登錄代碼,有的還有數據的爬取代碼。以豆瓣為例,主要的登錄函數如下所示,它會獲取驗證碼、處理驗證碼、返回登錄數據完成登錄,並最後保留 cookies。

其中獲取並解決驗證碼的函數如下:

當然這些都是簡單的演示,在 GitHub 項目中可以找到更多的示例。此外,作者表明由於網站策略或者樣式改變而導致代碼失效,我們也可以提 Issue 或 Pull Requests。最後,該項目未來還會一直維護,很多東西哦也會慢慢改進,項目作者表明:

項目寫了一段時間後,發現代碼風格、程序易用性、可擴展性、代碼的可讀性,都存在一定的問題,所以接下來最重要的是重構代碼,讓大家可以更容易的做出一些自己的小功能;

如果讀者覺得某個網站的登錄很有代表性,可以在項目 issue 中提出;

網站的登錄機制有可能經常的變動,所以當現在的模擬的登錄的規則不能使用的時候,請項目在 issue 中提出。

本文為機器之心編輯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

CNN能同時兼顧速度與準確度嗎?CMU提出AdaScale
達闥科技,用柔性智能關節 SCA 定義雲端智能柔性機器人起跑線

TAG:機器之心 |