python爬取B站千萬級資料,發現了這些熱門UP主的秘密!

來源:互聯網
上載者:User

標籤:python 爬蟲 科技 web 編程

Python(發音:英[?pa?θ?n],美[?pa?θɑ:n]),是一種物件導向、直譯式電腦程式設計語言,也是一種功能強大的通用型語言,已經具有近二十年的發展曆史,成熟且穩定。它包含了一組完善而且容易理解的標準庫,能夠輕鬆完成很多常見的任務。它的文法非常簡捷和清晰,與其它大多數程式設計語言不一樣,它使用縮排來定義語句。

Python支援命令式程式設計、物件導向程式設計、函數式編程、面向切面編程、泛型程式設計多種編程範式。與Scheme、Ruby、Perl、Tcl等動態語言一樣,Python具備記憶體回收功能,能夠自動管理儲存空間使用。它經常被當作指令碼語言用於處理系統管理任務和網路程式編寫,然而它也非常適合完成各種進階任務。Python虛擬機器本身幾乎可以在所有的作業系統中運行。使用一些諸如py2exe、PyPy、PyInstaller之類的工具可以將Python原始碼轉換成可以脫離Python解譯器啟動並執行程式。

粉絲獨白

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

要點:

- 爬取10萬使用者資料

- 資料存放區

- 資料詞雲分析

1.準備階段

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

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

資料庫中需要2個表,一個表格儲存體使用者的相互關注資訊,另一個表格儲存體使用者的基本資料,在B站的使用者體系中,一個使用者的mid號是唯一的。

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

2.建立資料庫

先寫建資料庫的代碼,資料庫中放一個使用者表,一個關係表:

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人。

整個爬取頁面的思路比較簡單,首先設定header,用requests庫進行API請求,獲得關注的使用者資料列表。

 

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

4.存入資料庫

我們資料集裡面一共有2個表,一個使用者列表,用來儲存所以的使用者資訊,一個是使用者之間的關注資訊。

5.探秘是熱門UP主

打算利用已經爬取到本地的資料進行詞雲的產生,來看一下這10萬使用者中共同的關注的哪些UP主出現的次數最多。

代碼的思路主要是從資料庫中擷取使用者的名字,重複的次數越多說明越多的使用者關注,然後我使用fate的一張圖片作為詞雲的mask圖片,最後產生詞雲圖片。

最後一起來看一下詞雲圖

可以看出蕾絲,暴走漫畫,木魚水心,參透之C君,papi醬等B站大UP主都是熱門關注。

Python可以做什嗎?

web開發和 爬蟲是比較適合 零基礎的

自動化營運 營運開發 和 自動化測試 是適合 已經在做營運和測試的人員

大資料 資料分析 這方面 是很需要專業的 專業性相對而言比較強

科學計算 一般都是科研人員 在用

機器學習 和 人工智慧 首先 學曆 要求高 其次 高數要求高 難度很大

我有一個公眾號,經常會分享一些python技術相關的乾貨;如果你喜歡我的分享,可以用搜尋“python語言學習”關注

歡迎大家加入千人交流答疑裙:699+749+852


python爬取B站千萬級資料,發現了這些熱門UP主的秘密!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.