亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用python爬取B站千萬級數(shù)據(jù)

 更新時(shí)間:2018年06月08日 08:41:42   作者:貓咪編程  
B站我想大家都熟悉吧,其實(shí) B 站的爬蟲網(wǎng)上一搜一大堆。不過紙上得來終覺淺,絕知此事要躬行,我碼故我在。

Python(發(fā)音:英[?pa?θ?n],美[?pa?θɑ:n]),是一種面向?qū)ο蟆⒅弊g式電腦編程語言,也是一種功能強(qiáng)大的通用型語言,已經(jīng)具有近二十年的發(fā)展歷史,成熟且穩(wěn)定。它包含了一組完善而且容易理解的標(biāo)準(zhǔn)庫,能夠輕松完成很多常見的任務(wù)。它的語法非常簡捷和清晰,與其它大多數(shù)程序設(shè)計(jì)語言不一樣,它使用縮進(jìn)來定義語句。

Python支持命令式程序設(shè)計(jì)、面向?qū)ο蟪绦蛟O(shè)計(jì)、函數(shù)式編程、面向切面編程、泛型編程多種編程范式。與Scheme、Ruby、Perl、Tcl等動(dòng)態(tài)語言一樣,Python具備垃圾回收功能,能夠自動(dòng)管理存儲(chǔ)器使用。它經(jīng)常被當(dāng)作腳本語言用于處理系統(tǒng)管理任務(wù)和網(wǎng)絡(luò)程序編寫,然而它也非常適合完成各種高級任務(wù)。Python虛擬機(jī)本身幾乎可以在所有的作業(yè)系統(tǒng)中運(yùn)行。使用一些諸如py2exe、PyPy、PyInstaller之類的工具可以將Python源代碼轉(zhuǎn)換成可以脫離Python解釋器運(yùn)行的程序。

粉絲獨(dú)白

說起熱門的B站相信很多喜歡玩動(dòng)漫的,看最有創(chuàng)意的Up主的同學(xué)一定非常熟悉。我突發(fā)奇想學(xué)Python這么久了,為啥不用Python爬取B站中我關(guān)注的人,已經(jīng)關(guān)注的人他們關(guān)注的人,看看全站里面熱門的UP主都是是哪些。

要點(diǎn):

- 爬取10萬用戶數(shù)據(jù)

- 數(shù)據(jù)存儲(chǔ)

- 數(shù)據(jù)詞云分析

1.準(zhǔn)備階段

寫代碼前先構(gòu)思思路:既然我要爬取用戶關(guān)注的用戶,那我需要存儲(chǔ)用戶之間的關(guān)系,確定誰是主用戶,誰是follower。

存儲(chǔ)關(guān)系使用數(shù)據(jù)庫最方便,也有利于后期的數(shù)據(jù)分析,我選擇sqlite數(shù)據(jù)庫,因?yàn)镻ython自帶sqlite,sqlite在Python中使用起來也非常方便。

數(shù)據(jù)庫中需要2個(gè)表,一個(gè)表存儲(chǔ)用戶的相互關(guān)注信息,另一個(gè)表存儲(chǔ)用戶的基本信息,在B站的用戶體系中,一個(gè)用戶的mid號是唯一的。

然后我還需要一個(gè)列表來存儲(chǔ)所以已經(jīng)爬取的用戶,防止重復(fù)爬取,畢竟用戶之間相互關(guān)注的現(xiàn)象也是存在的,列表中存用戶的mid號就可以了。

2.新建數(shù)據(jù)庫

先寫建數(shù)據(jù)庫的代碼,數(shù)據(jù)庫中放一個(gè)用戶表,一個(gè)關(guān)系表:

3.爬取前5頁的用戶數(shù)據(jù)

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

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

其中vimd=后的參數(shù)就是用戶的mid號

pn=1指用戶的關(guān)注的第一面用戶,一面顯示20個(gè)用戶

因?yàn)锽站的隱私設(shè)置,一個(gè)人只能爬取其他人的前5頁關(guān)注,共100人。

整個(gè)爬取頁面的思路比較簡單,首先設(shè)置header,用requests庫進(jìn)行API請求,獲得關(guān)注的用戶數(shù)據(jù)列表。

我們爬取前5頁,每一頁的數(shù)據(jù)進(jìn)行簡單的處理,然后轉(zhuǎn)為字典數(shù)據(jù)進(jìn)行獲取mid,uname,sign3個(gè)維度的數(shù)據(jù),最后save()函數(shù)存入db.

4.存入數(shù)據(jù)庫

我們數(shù)據(jù)集里面一共有2個(gè)表,一個(gè)用戶列表,用來存儲(chǔ)所以的用戶信息,一個(gè)是用戶之間的關(guān)注信息。

5.探秘是熱門UP主

打算利用已經(jīng)爬取到本地的數(shù)據(jù)進(jìn)行詞云的生成,來看一下這10萬用戶中共同的關(guān)注的哪些UP主出現(xiàn)的次數(shù)最多。

代碼的思路主要是從數(shù)據(jù)庫中獲取用戶的名字,重復(fù)的次數(shù)越多說明越多的用戶關(guān)注,然后我使用fate的一張圖片作為詞云的mask圖片,最后生成詞云圖片。

最后一起來看一下詞云圖

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

Python可以做什么?

web開發(fā)和 爬蟲是比較適合 零基礎(chǔ)的

自動(dòng)化運(yùn)維 運(yùn)維開發(fā) 和 自動(dòng)化測試 是適合 已經(jīng)在做運(yùn)維和測試的人員

大數(shù)據(jù) 數(shù)據(jù)分析 這方面 是很需要專業(yè)的 專業(yè)性相對而言比較強(qiáng)

科學(xué)計(jì)算 一般都是科研人員 在用

機(jī)器學(xué)習(xí) 和 人工智能 首先 學(xué)歷 要求高 其次 高數(shù)要求高 難度很大

相關(guān)文章

  • Python代碼顯得Pythonic(區(qū)別于其他語言的寫法)

    Python代碼顯得Pythonic(區(qū)別于其他語言的寫法)

    這篇文章主要介紹了Python代碼顯得Pythonic(區(qū)別于其他語言的寫法),對于字符串連接,相比于簡單的+,更pythonic的做法是盡量使用%操作符或者format函數(shù)格式化字符串,感興趣的小伙伴和小編一起進(jìn)入文章了解更詳細(xì)相關(guān)知識(shí)內(nèi)容吧
    2022-02-02
  • 使用Python一鍵提取PDF中的表格到Excel的方法詳解

    使用Python一鍵提取PDF中的表格到Excel的方法詳解

    從PDF文件獲取表格中的數(shù)據(jù),也是日常辦公容易涉及到的一項(xiàng)工作,一個(gè)一個(gè)復(fù)制吧,效率確實(shí)太低了,用Python從PDF文檔中提取表格數(shù)據(jù),并寫入Excel文件,灰常灰常高效,本文就給大家介紹一下如何使用Python一鍵提取PDF中的表格到Excel,需要的朋友可以參考下
    2023-08-08
  • Python網(wǎng)絡(luò)編程基于多線程實(shí)現(xiàn)多用戶全雙工聊天功能示例

    Python網(wǎng)絡(luò)編程基于多線程實(shí)現(xiàn)多用戶全雙工聊天功能示例

    這篇文章主要介紹了Python網(wǎng)絡(luò)編程基于多線程實(shí)現(xiàn)多用戶全雙工聊天功能,結(jié)合實(shí)例形式分析了Python網(wǎng)絡(luò)編程中使用多線程進(jìn)行多用戶異步通信的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • python多線程與多進(jìn)程及其區(qū)別詳解

    python多線程與多進(jìn)程及其區(qū)別詳解

    這篇文章主要介紹了python多線程與多進(jìn)程及其區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 用python打包exe應(yīng)用程序及PyInstaller安裝方式

    用python打包exe應(yīng)用程序及PyInstaller安裝方式

    PyInstaller 制作出來的執(zhí)行文件并不是跨平臺(tái)的,如果需要為不同平臺(tái)打包,就要在相應(yīng)平臺(tái)上運(yùn)行PyInstaller進(jìn)行打包。今天通過本文給大家介紹用python打包exe應(yīng)用程序及PyInstaller安裝方式,感興趣的朋友一起看看吧
    2021-12-12
  • Mac OS X10.9安裝的Python2.7升級Python3.3步驟詳解

    Mac OS X10.9安裝的Python2.7升級Python3.3步驟詳解

    Mac OS X10.9默認(rèn)帶了Python2.7,不過現(xiàn)在Python3.3.3出來了,如果想使用最新版本,趕緊升級下吧?;静襟E如下
    2013-12-12
  • Python刪除n行后的其他行方法

    Python刪除n行后的其他行方法

    今天小編就為大家分享一篇Python刪除n行后的其他行方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python的Dict對象源碼分析

    Python的Dict對象源碼分析

    這篇文章主要介紹了Python的Dict對象源碼分析,PyDictObject即字典對象,類似于C++ STL中的map,但STL中以紅黑樹實(shí)現(xiàn),Python中dict以hash表(散列表)實(shí)現(xiàn),需要的朋友可以參考下
    2023-08-08
  • python操作MySQL 模擬簡單銀行轉(zhuǎn)賬操作

    python操作MySQL 模擬簡單銀行轉(zhuǎn)賬操作

    這篇文章主要介紹了python操作MySQL 模擬簡單銀行轉(zhuǎn)賬操作,需要的朋友可以參考下
    2017-09-09
  • 讓你Python到很爽的加速遞歸函數(shù)的裝飾器

    讓你Python到很爽的加速遞歸函數(shù)的裝飾器

    這篇文章主要介紹了讓你Python到很爽的加速遞歸函數(shù)的裝飾器,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05

最新評論