【Python項目】爬取新浪微博簽到頁


基於微博簽到頁的微博爬蟲

項目鏈接:https://github.com/RealIvyWong/WeiboCrawler/tree/master/WeiboLocationCrawler

1 實現功能

這個項目是用來爬取微博簽到頁的微博數據(每三個小時爬一次),並寫進sqlite數據庫。

關於微博簽到頁打個比方,就是類似這個https://weibo.com/p/100101B2094757D069A7FE449F

1543409340810

順便一說,這個頁面是不用微博登錄就可以訪問的。所以方便很多啊(不用模擬登錄)。

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分鍾左右?)。

1545037686110

然后獲取完代理就一個一個地點開始爬,像這樣。

1545037751972

這個頁數是由那個簽到點的微博數定的,如果很冷門,可能就十幾頁甚至幾頁。當然,最多新浪只會讓我們爬150頁,所以不是這個簽到點的所有數據都能爬到。

得到的weibo.sqlite結構是包含三個表,weibo表(用來存儲微博具體的信息)、pic表(用來存儲微博圖片的url,因為一條微博可能有多張圖)和picweibo表(建立pic的id和weibo的id的聯系的表)。

1545038005026

1545038022806

1545038040195

6 Contact Me

如果有什么Bug,或者改進建議。

請聯系我!(924154233@qq.com)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM