新浪微博的數據可是非常有價值的,你可以拿來數據分析、拿來做網站、甚至是*****。不過很多人由於技術限制,想要使用的時候只能使用複製粘貼這樣的笨方法。沒關係,現在就教大家如何批量爬取微博的數據,大大加快數據遷移速度!
我們使用到的是第三方作者開發的爬蟲庫weiboSpider(有工具當然要用工具啦)。這裏默認大家已經裝好了Python,如果沒有的話可以看我們之前的文章:Python詳細安裝指南。
1. 下載項目
進入下方的網址,點擊Download ZIP下載項目文件
或者
你有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"
}
}
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼
下面講解每個參數的含義與設置方法。
設置user_id_list: user_id_list是我們要爬取的微博的id,可以是一個,也可以是多個,例如:
"user_id_list": ["1223178222", "1669879400", "1729370543"],
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼
上述代碼代表我們要連續爬取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池或者代理池之類的)