<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          爬蟲實(shí)戰(zhàn) | 手把手教你批量爬取某站視頻數(shù)據(jù)

          共 1860字,需瀏覽 4分鐘

           ·

          2021-04-24 22:24

          ↑↑↑關(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)美德不能丟 

          瀏覽 103
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操操操干干干 | 三级黄色操逼片 | 亚洲无码成人影视 | 在线韩国精品三级中文hd无码精品 | 韩国三级在线视频 |