Python 超簡單爬取新浪微博資料 (高階版)

pythondict發表於2020-05-16

新浪微博的資料可是非常有價值的,你可以拿來資料分析、拿來做網站、甚至是*****。不過很多人由於技術限制,想要使用的時候只能使用複製貼上這樣的笨方法。沒關係,現在就教大家如何批量爬取微博的資料,大大加快資料遷移速度!

我們使用到的是第三方作者開發的爬蟲weiboSpider(有工具當然要用工具啦)。這裡預設大家已經裝好了Python,如果沒有的話可以看我們之前的文章:Python詳細安裝指南

1. 下載專案

進入下方的網址,點選Download ZIP下載專案檔案

github.com/dataabc/weiboSpider

或者

你有git的話可以在cmd/terminal中輸入以下命令安裝​

git clone https://github.com/dataabc/weiboSpider.git 

​2.安裝依賴

將該專案壓縮包解壓後,開啟你的cmd/Termianl進入該專案目錄,輸入以下命令:

pip install -r requirements.txt

便會開始安裝專案依賴,等待其安裝完成即可。

3.設定cookie

開啟weibospider資料夾下的weibospider.py檔案,將”your cookie”替換成爬蟲微博的cookie,具體替換位置大約在weibospider.py檔案的22行左右。cookie獲取方法:

3.1 登入微博

3.2 按F12鍵或者右鍵頁面空白處—檢查,開啟開發者工具

3.3 選擇**network — 按F5重新整理一下 — 選擇第一個檔案 — 在右邊視窗找到cookie**

然後替換大約在weibospider.py檔案的22行左右的cookie,如圖所示:

替換前:

替換後:

4.設定要爬的使用者user_id

4.1 獲取user_id

點開你希望爬取的使用者主頁,然後檢視此時的url:

你會發現有一串數字在連結中,這個就是我們要用到的userID, 複製即可。

4.2 設定要爬取的user_id

開啟config.json檔案,你會看到如下內容:

{
    "user_id_list": ["1669879400"],
    "filter": 1,
    "since_date": "2018-01-01",
    "write_mode": ["csv", "txt"],
    "pic_download": 1,
    "video_download": 1,
    "cookie": "your cookie",
    "mysql_config": {
        "host": "localhost",
        "port": 3306,
        "user": "root",
        "password": "123456",
        "charset": "utf8mb4"
    }
}

下面講解每個引數的含義與設定方法。

設定user_id_list:
user_id_list是我們要爬取的微博的id,可以是一個,也可以是多個,例如:

“user_id_list”: [“1223178222”, “1669879400”, “1729370543”],

上述程式碼代表我們要連續爬取user_id分別為“1223178222”、 “1669879400”、 “1729370543”的三個使用者的微博。

user_id_list的值也可以是檔案路徑,我們可以把要爬的所有微博使用者的user_id都寫到txt檔案裡,然後把檔案的位置路徑賦值給user_id_list。

在txt檔案中,每個user_id佔一行,也可以在user_id後面加註釋(可選),如使用者暱稱等資訊,user_id和註釋之間必需要有空格,檔名任意,型別為txt,位置位於本程式的同目錄下,檔案內容示例如下:

1223178222 胡歌

1669879400 迪麗熱巴

1729370543 郭碧婷

假如檔案叫user_id_list.txt,則user_id_list設定程式碼為:

“user_id_list”: “user_id_list.txt”,

如果有需要還可以設定Mysql資料和MongoDB資料寫入,如果不設定的話就預設寫入到txt和csv檔案中。

5. 執行爬蟲

開啟cmd/terminal 進入該專案目錄,輸入:

python weibospider.py

即可開始爬取資料了,怎麼樣,是不是超級方便?而且你還可以自定義爬取的資訊,比如微博的起始時間、是否寫入資料,甚至能在它程式碼的基礎上增加新的功能!(比如加個cookie池或者代理池之類的)

我們的文章到此就結束啦,如果你希望我們今天的Python 教程,請持續關注我們,如果對你有幫助,麻煩在下面點一個贊/在看哦有任何問題都可以在下方留言區留言,我們都會耐心解答的!


​Python實用寶典 (pythondict.com)
不只是一個寶典
歡迎關注公眾號:Python實用寶典

原文來自Python實用寶典:Python 爬取新浪微博

Python實用寶典

本作品採用《CC 協議》,轉載必須註明作者和本文連結

Python實用寶典, pythondict.com

相關文章