日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何快速爬取B站全站視頻信息

B 站我想大家都熟悉吧,其實(shí) B 站的爬蟲網(wǎng)上一搜一大堆。不過 紙上得來終覺淺,絕知此事要躬行,我碼故我在。最終爬取到數(shù)據(jù)總量為 760萬(wàn) 條。

硯山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

準(zhǔn)備工作

首先打開 B 站,隨便在首頁(yè)找一個(gè)視頻點(diǎn)擊進(jìn)去。常規(guī)操作,打開開發(fā)者工具。這次是目標(biāo)是通過爬取 B 站提供的 api 來獲取視頻信息,不去解析網(wǎng)頁(yè),解析網(wǎng)頁(yè)的速度太慢了而且容易被封 ip。

勾選 JS 選項(xiàng),F(xiàn)5 刷新

找到了 api 的地址

復(fù)制下來,去除沒必要的內(nèi)容,得到 https://api.bilibili.com/x/web-interface/archive/stat?aid=15906633 ,用瀏覽器打開,會(huì)得到如下的 json 數(shù)據(jù)

動(dòng)手寫碼

好了,到這里代碼就可以碼起來了,通過 request 不斷的迭代獲取數(shù)據(jù),為了讓爬蟲更高效,可以利用多線程。

核心代碼

 
 
 
 
  1. result = []
  2. req = requests.get(url, headers=headers, timeout=6).json()
  3. time.sleep(0.6)     # 延遲,避免太快 ip 被封
  4. try:
  5.     data = req['data']
  6.     video = Video(
  7.         data['aid'],        # 視頻編號(hào)
  8.         data['view'],       # 播放量
  9.         data['danmaku'],    # 彈幕數(shù)
  10.         data['reply'],      # 評(píng)論數(shù)
  11.         data['favorite'],   # 收藏?cái)?shù)
  12.         data['coin'],       # 硬幣數(shù)
  13.         data['share']       # 分享數(shù)
  14.     )
  15.     with lock:
  16.         result.append(video)
  17. except:
  18.     pass

迭代爬取

 
 
 
 
  1. urls = ["http://api.bilibili.com/archive_stat/stat?aid={}".format(i) 
  2.     for i in range(10000)]
  3.  with futures.ThreadPoolExecutor(32) as executor:    # 多線程
  4.      executor.map(run, urls)

不要一次性爬取全部鏈接,我是利用兩個(gè)進(jìn)程,這樣就是多進(jìn)程+多線程了。一個(gè)進(jìn)程一次大概爬取 50w 條數(shù)據(jù)。100w 條數(shù)據(jù)的話大概一個(gè)多小時(shí)吧。分多次爬取,分別將數(shù)據(jù)保存為不同的文件名,最后再匯總。

運(yùn)行的效果大概是這樣的,數(shù)字是已經(jīng)已經(jīng)爬取了多少條鏈接,其實(shí)完全可以在一天或者兩天內(nèi)就把全站信息爬完的。

至于爬取后要怎么處理就看自己愛好了,我是先保存為 csv 文件,然后再匯總插入到數(shù)據(jù)庫(kù)。

匯總的 csv 文件

數(shù)據(jù)庫(kù)表

由于這些內(nèi)容是我在幾個(gè)月前爬取的,所以數(shù)據(jù)其實(shí)有些滯后了。

數(shù)據(jù)總量

查詢播放量前十的視頻

查詢回復(fù)量前十的視頻

各種花樣查詢?nèi)尉x擇??!視頻的鏈接為 https://www.bilibili.com/video/av + v_aid

詳細(xì)代碼請(qǐng)移步至 bili.py

對(duì)數(shù)據(jù)感興趣的話可以郵箱聯(lián)系我,可以打包贈(zèng)與。

項(xiàng)目地址:chenjiandongx/bili-spider 歡迎圍觀  vfghjklp;]\78+


分享名稱:如何快速爬取B站全站視頻信息
當(dāng)前地址:http://www.dlmjj.cn/article/cdooegg.html