您好,登錄后才能下訂單哦!
小編給大家分享一下怎么使用python爬取B站千萬級數據,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Python支持命令式程序設計、面向對象程序設計、函數式編程、面向切面編程、泛型編程多種編程范式。與Scheme、Ruby、Perl、Tcl等動態語言一樣,Python具備垃圾回收功能,能夠自動管理存儲器使用。它經常被當作腳本語言用于處理系統管理任務和網絡程序編寫,然而它也非常適合完成各種高級任務。Python虛擬機本身幾乎可以在所有的作業系統中運行。使用一些諸如py2exe、PyPy、PyInstaller之類的工具可以將Python源代碼轉換成可以脫離Python解釋器運行的程序。
說起熱門的B站相信很多喜歡玩動漫的,看最有創意的Up主的同學一定非常熟悉。我突發奇想學Python這么久了,為啥不用Python爬取B站中我關注的人,已經關注的人他們關注的人,看看全站里面熱門的UP主都是是哪些。
要點:
- 爬取10萬用戶數據
- 數據存儲
- 數據詞云分析
寫代碼前先構思思路:既然我要爬取用戶關注的用戶,那我需要存儲用戶之間的關系,確定誰是主用戶,誰是follower。
存儲關系使用數據庫最方便,也有利于后期的數據分析,我選擇sqlite數據庫,因為Python自帶sqlite,sqlite在Python中使用起來也非常方便。
數據庫中需要2個表,一個表存儲用戶的相互關注信息,另一個表存儲用戶的基本信息,在B站的用戶體系中,一個用戶的mid號是唯一的。
然后我還需要一個列表來存儲所以已經爬取的用戶,防止重復爬取,畢竟用戶之間相互關注的現象也是存在的,列表中存用戶的mid號就可以了。
先寫建數據庫的代碼,數據庫中放一個用戶表,一個關系表:
我需要找到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人。
整個爬取頁面的思路比較簡單,首先設置header,用requests庫進行API請求,獲得關注的用戶數據列表。
我們爬取前5頁,每一頁的數據進行簡單的處理,然后轉為字典數據進行獲取mid,uname,sign3個維度的數據,最后save()函數存入db.
我們數據集里面一共有2個表,一個用戶列表,用來存儲所以的用戶信息,一個是用戶之間的關注信息。
打算利用已經爬取到本地的數據進行詞云的生成,來看一下這10萬用戶中共同的關注的哪些UP主出現的次數最多。
代碼的思路主要是從數據庫中獲取用戶的名字,重復的次數越多說明越多的用戶關注,然后我使用fate的一張圖片作為詞云的mask圖片,最后生成詞云圖片。
最后一起來看一下詞云圖
可以看出蕾絲,暴走漫畫,木魚水心,參透之C君,papi醬等B站大UP主都是熱門關注。
以上是“怎么使用python爬取B站千萬級數據”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。