當前位置:首頁 » 編程語言 » 發微博python

發微博python

發布時間: 2025-03-19 07:44:19

python爬取和分析新浪微博(一):scrapy構建新浪微博榜單、博主及微博信息爬蟲

爬蟲項目介紹

本項目基於Python的Scrapy框架,採用隨機用戶代理和IP代理等反爬技巧,將收集到的微博領域數據、各領域榜單博主信息和博主的微博信息分別存入MySQL資料庫的相應表格。

查看完整代碼請訪問GitHub:

爬蟲邏輯

2.1 獲取微博領域信息

首先,爬取V影響力榜上所有微博領域名稱及其對應的各領域微博榜單鏈接。

2.2 獲取各領域榜單博主信息

進入各領域排行榜頁面(如互聯網榜),抓取4月月榜排名前100的博主信息。

分析網頁得知,博主信息通過單獨請求json文件獲取。

請求的URL地址為:v6.bang.weibo.com/aj/we...

URL中__rnd欄位的值由請求時間戳生成。

使用POST請求,並在表單中包含type、date、domainId等欄位。

編寫請求代碼如下:

2.3 獲得博主個人主頁和發表微博信息

收集每個博主的昵稱、ID、粉絲數、關注數、微博數、性別、地址等信息後,進入博主的微博主頁,抓取最近60條微博信息(包括內容、發表日期、轉發/點贊/評論數等)。

請求博主主頁URL時需攜帶固定的cookie信息。

博主微博主頁分析發現,發表的微博內容通過單獨請求json文件獲取。

json文件的URL很長,包含domain、pl_name、page_id、script_uri等欄位。

請求方式為GET。

請求json文件後,將data值轉化為Scrapy的Selector子類,使用CSS或XPath選擇器獲取所需信息。

爬蟲代理設置

為了對抗微博的反爬策略,本項目使用隨機更換User-Agent和IP地址的方法。

3.1 隨機User-Agent

編寫RandomUserAgentMiddleware中間件,使用fake-useragent生成UserAgent實例,為每次請求隨機生成一個User-Agent。

具體代碼在GitHub上。

3.2 隨機IP

從蘑菇IP代理購買付費IP,生成API鏈接,處理返回的JSON文件提取IP信息,保存至MySQL資料庫。Scrapy每次請求時從資料庫隨機獲取一個有效IP。

通過變換IP地址發送請求,基本避免了被反爬。

爬取結果

非同步保存至MySQL資料庫,數據分別存入weibotopic、topicuser、weiboinfo三個表格。

weibotopic(38個領域):

topicuser(3648個用戶,有些領域榜單上可能不足100個用戶):

weiboinfo(115740條微博)

小結

以上介紹了基於V影響力榜單爬取新浪微博信息的爬蟲項目,代碼在GitHub上公開,歡迎查看、交流。

後續文章將對收集到的數據進行統計分析和可視化展示,期待進一步的探索。

熱點內容
vpn韓國伺服器地址 發布:2025-03-20 07:12:44 瀏覽:25
打碼軟體源碼 發布:2025-03-20 07:08:06 瀏覽:109
前端android 發布:2025-03-20 06:50:42 瀏覽:93
進制轉換棧c語言 發布:2025-03-20 06:50:31 瀏覽:339
myeclipse不自動編譯了 發布:2025-03-20 06:41:38 瀏覽:777
led汽車大燈和鹵素燈該選哪個配置 發布:2025-03-20 06:40:55 瀏覽:917
sql網校 發布:2025-03-20 06:16:42 瀏覽:279
安卓手機圖標排列為什麼會混亂 發布:2025-03-20 06:16:05 瀏覽:761
手機pin初始密碼是多少 發布:2025-03-20 06:15:59 瀏覽:900
javaif常量變數 發布:2025-03-20 06:15:57 瀏覽:344