基於微博簽到頁的微博爬蟲
項目鏈接:https://github.com/RealIvyWong/WeiboCrawler/tree/master/WeiboLocationCrawler
1 實現功能
這個項目是用來爬取微博簽到頁的微博數據(每三個小時爬一次),並寫進sqlite數據庫。
關於微博簽到頁打個比方,就是類似這個https://weibo.com/p/100101B2094757D069A7FE449F
順便一說,這個頁面是不用微博登錄就可以訪問的。所以方便很多啊(不用模擬登錄)。
2 依賴環境
使用的是Python 3.7(在雲上用過3.5也完全ok)。
需要額外的第三方庫有yagmail(用來發送郵件),pandas,bs4。均可使用pip來安裝。
pip install yagmail pandas bs4
3 使用方法
step1. 修改pid.csv中的地點名詞與對應的id。
step2. 修改start.py中的郵箱賬號密碼。
step3. Run start.py。
4 文件說明
包含四個文件。
pid.csv
是放置地點的名稱和微博頁面對應的位置id。比如說上面的珞珈山,就是網頁URL最后的那一串數字100101B2094757D069A7FE449F。
buildip.py
是在網上看到別人寫的……具體忘了哪的,如果本尊看到!sorry!請聯系我注明!
我稍微修改了下。這個文件是一個實現爬取代理網站上的代理IP來構建代理池的模塊。
crawler.py
爬蟲本體。
start.py
控制爬取多個地點的一個啟動文件。
5 爬取示例
如果開始成功運行之后,控制台輸出大概是這樣的。先獲取代理ip(這可能需要10分鍾左右?)。
然后獲取完代理就一個一個地點開始爬,像這樣。
這個頁數是由那個簽到點的微博數定的,如果很冷門,可能就十幾頁甚至幾頁。當然,最多新浪只會讓我們爬150頁,所以不是這個簽到點的所有數據都能爬到。
得到的weibo.sqlite
結構是包含三個表,weibo
表(用來存儲微博具體的信息)、pic
表(用來存儲微博圖片的url,因為一條微博可能有多張圖)和picweibo
表(建立pic的id和weibo的id的聯系的表)。
6 Contact Me
如果有什么Bug,或者改進建議。
請聯系我!(924154233@qq.com)