如果利用Python爬取B站上千萬數據?B站直播都是大屌萌妹嗎?

如果利用Python爬取B站上千萬數據?B站直播都是大屌萌妹嗎?

如果利用Python爬取B站上千萬數據?B站直播都是大屌萌妹嗎?

粉絲獨白

說起熱門的B站相信很多喜歡玩動漫的,看最有創意的Up主的同學一定非常熟悉。我突發奇想學Python這麼久了,為啥不用Python爬取B站中我關注的人,已經關注的人他們關注的人,看看全站裡面熱門的UP主都是是哪些。

要點:

- 爬取10萬用戶數據

- 數據存儲

- 數據詞雲分析

1.準備階段

寫代碼前先構思思路:既然我要爬取用戶關注的用戶,那我需要存儲用戶之間的關係,確定誰是主用戶,誰是follower。

存儲關係使用數據庫最方便,也有利於後期的數據分析,我選擇sqlite數據庫,因為Python自帶sqlite,sqlite在Python中使用起來也非常方便。

數據庫中需要2個表,一個表存儲用戶的相互關注信息,另一個表存儲用戶的基本信息,在B站的用戶體系中,一個用戶的mid號是唯一的。

然後我還需要一個列表來存儲所以已經爬取的用戶,防止重複爬取,畢竟用戶之間相互關注的現象也是存在的,列表中存用戶的mid號就可以了。

2.新建數據庫

先寫建數據庫的代碼,數據庫中放一個用戶表,一個關係表:

如果利用Python爬取B站上千萬數據?B站直播都是大屌萌妹嗎?

3.爬取前5頁的用戶數據

我需要找到B站用戶的關注列表的json接口,很快就找到了,地址是:

https://api.bilibili.com/x/relation/followings?vmid=2&pn=1&ps=20&order=desc&jsonp=jsonp&callback=__jp7

其中vimd=後的參數就是用戶的mid號

pn=1指用戶的關注的第一面用戶,一面顯示20個用戶

因為B站的隱私設置,一個人只能爬取其他人的前5頁關注,共100人。

如果利用Python爬取B站上千萬數據?B站直播都是大屌萌妹嗎?

整個爬取頁面的思路比較簡單,首先設置header,用requests庫進行API請求,獲得關注的用戶數據列表。

如果利用Python爬取B站上千萬數據?B站直播都是大屌萌妹嗎?

我們爬取前5頁,每一頁的數據進行簡單的處理,然後轉為字典數據進行獲取mid,uname,sign3個維度的數據,最後save()函數存入db.


分享到:


相關文章: