爬蟲實(shí)戰(zhàn) | 手把手教你批量爬取某站視頻數(shù)據(jù)
↑↑↑關(guān)注后"星標(biāo)"簡說Python
人人都可以簡單入門Python、爬蟲、數(shù)據(jù)分析 簡說Python推薦 來源:志斌的python筆記 作者:志斌
大家好,我是老表~
這幾天一直有小伙伴問B站上的視頻數(shù)據(jù)是怎么獲取的,今天就來給大家分享一下批量獲取B站視頻數(shù)據(jù)的方式。
大家也可以看看前天發(fā)的該死!B 站上這些 Python 視頻真香!
即學(xué)即用~
01
頁面分析
B站的反爬蟲技術(shù)是信息校驗(yàn)型反爬蟲中的cookie反爬蟲,我們需要在爬取數(shù)據(jù)的時(shí)候加上cookie,即可繞過該其反爬蟲機(jī)制。有不懂怎么繞過的小伙伴可以看看這篇文章學(xué)會Cookie,解決登錄爬取的困擾!。

登陸之后,我們在搜索框隨便輸入一個(gè)想要獲取數(shù)據(jù)的視頻名稱,我這里以輸入Python為例。輸入后,我們尋找一下數(shù)據(jù)的存儲位置,我們發(fā)現(xiàn)數(shù)據(jù)存儲在源網(wǎng)頁中。

02
數(shù)據(jù)采集
在上面我們已經(jīng)找到了數(shù)據(jù)的存儲位置了,現(xiàn)在只需要將它給采集出來即可。
通過對頁面的觀察我們發(fā)現(xiàn),數(shù)據(jù)是存儲在頁面的標(biāo)簽中的。那么我們用BS4對數(shù)據(jù)進(jìn)行爬取是最方便的。

提取數(shù)據(jù)的核心代碼如下:
import requests
from bs4 import BeautifulSoup
import re
import csv
import time
params = (
('keyword', 'python'),
('page', str(page)),
)
response = requests.get('https://search.bilibili.com/video', headers=headers, params=params)
soup = BeautifulSoup(response.text,'html.parser')
zong = soup.find('ul',class_='video-list clearfix')
for i in zong.find_all('li'):
title = i.find(class_='headline clearfix').find('a').text
bofang = i.find(class_='so-icon watch-num').text.split()[0]
danmu = i.find(class_='so-icon hide').text.split()[0]
shangchuanshijian = i.find(class_='so-icon time').text.split()[0]
upzhu = i.find(class_='up-name').text.split()[0]
href = re.findall('(www.*)', i.find('a')['href'])[0]
with open('123.csv', 'a', newline='') as f:
writer = csv.writer(f)
try:
writer.writerow([title,bofang,danmu,shangchuanshijian,upzhu,href])
except:
pass
讓我們來看看爬取的效果:

03
批量爬取
我發(fā)現(xiàn),在params參數(shù)中,有一個(gè)keyword參數(shù),當(dāng)改變這個(gè)參數(shù)的值時(shí),即可獲取相應(yīng)參數(shù)的信息。核心代碼如下:
keywords = []
for keyword in keywords:
for page in range(1,51):
params = (
('keyword', keyword),
('page', str(page)),
)
04
小結(jié)
1. 以上就是批量爬取B站視頻數(shù)據(jù)的方法。
2. 本文僅供大家學(xué)習(xí)參考,不做商用。
3. 掃下方二維碼添加我微信,回復(fù):B站,即可獲得源碼。
掃碼查看我朋友圈
獲取最新學(xué)習(xí)資源
學(xué)習(xí)更多: 整理了我開始分享學(xué)習(xí)筆記到現(xiàn)在超過250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲、機(jī)器學(xué)習(xí)等方面,別再說不知道該從哪開始,實(shí)戰(zhàn)哪里找了
“點(diǎn)贊”傳統(tǒng)美德不能丟 
