精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

手把手教你使用Python抓取并存儲(chǔ)網(wǎng)頁(yè)數(shù)據(jù)!

開(kāi)發(fā) 后端
本文將基于爬取B站視頻熱搜榜單數(shù)據(jù)并存儲(chǔ)為例,詳細(xì)介紹Python爬蟲(chóng)的基本流程。如果你還在入門(mén)爬蟲(chóng)階段或者不清楚爬蟲(chóng)的具體工作流程,那么應(yīng)該仔細(xì)閱讀本文!

爬蟲(chóng)是Python的一個(gè)重要的應(yīng)用,使用Python爬蟲(chóng)我們可以輕松的從互聯(lián)網(wǎng)中抓取我們想要的數(shù)據(jù),本文將基于爬取B站視頻熱搜榜單數(shù)據(jù)并存儲(chǔ)為例,詳細(xì)介紹Python爬蟲(chóng)的基本流程。如果你還在入門(mén)爬蟲(chóng)階段或者不清楚爬蟲(chóng)的具體工作流程,那么應(yīng)該仔細(xì)閱讀本文!

[[345561]]

第一步:嘗試請(qǐng)求

首先進(jìn)入b站首頁(yè),點(diǎn)擊排行榜并復(fù)制鏈接

 

  1. https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3 

現(xiàn)在啟動(dòng)Jupyter notebook,并運(yùn)行以下代碼

  1. import requests 
  2.  
  3. url = 'https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3' 
  4. res = requests.get('url') 
  5. print(res.status_code) 
  6. #200 

在上面的代碼中,我們完成了下面三件事

  • 導(dǎo)入requests
  • 使用get方法構(gòu)造請(qǐng)求
  • 使用status_code獲取網(wǎng)頁(yè)狀態(tài)碼

可以看到返回值是200,表示服務(wù)器正常響應(yīng),這意味著我們可以繼續(xù)進(jìn)行。

第二步:解析頁(yè)面

在上一步我們通過(guò)requests向網(wǎng)站請(qǐng)求數(shù)據(jù)后,成功得到一個(gè)包含服務(wù)器資源的Response對(duì)象,現(xiàn)在我們可以使用.text來(lái)查看其內(nèi)容

可以看到返回一個(gè)字符串,里面有我們需要的熱榜視頻數(shù)據(jù),但是直接從字符串中提取內(nèi)容是比較復(fù)雜且低效的,因此我們需要對(duì)其進(jìn)行解析,將字符串轉(zhuǎn)換為網(wǎng)頁(yè)結(jié)構(gòu)化數(shù)據(jù),這樣可以很方便地查找HTML標(biāo)簽以及其中的屬性和內(nèi)容。

在Python中解析網(wǎng)頁(yè)的方法有很多,可以使用正則表達(dá)式,也可以使用BeautifulSoup、pyquery或lxml,本文將基于BeautifulSoup進(jìn)行講解.

Beautiful Soup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的第三方庫(kù).安裝也很簡(jiǎn)單,使用pip install bs4安裝即可,下面讓我們用一個(gè)簡(jiǎn)單的例子說(shuō)明它是怎樣工作的

  1. from bs4 import BeautifulSoup 
  2.  
  3. page = requests.get(url) 
  4. soup = BeautifulSoup(page.content, 'html.parser') 
  5. title = soup.title.text  
  6. print(title) 
  7. # 熱門(mén)視頻排行榜 - 嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibili 

在上面的代碼中,我們通過(guò)bs4中的BeautifulSoup類(lèi)將上一步得到的html格式字符串轉(zhuǎn)換為一個(gè)BeautifulSoup對(duì)象,注意在使用時(shí)需要制定一個(gè)解析器,這里使用的是html.parser。

接著就可以獲取其中的某個(gè)結(jié)構(gòu)化元素及其屬性,比如使用soup.title.text獲取頁(yè)面標(biāo)題,同樣可以使用soup.body、soup.p等獲取任意需要的元素。

第三步:提取內(nèi)容

在上面兩步中,我們分別使用requests向網(wǎng)頁(yè)請(qǐng)求數(shù)據(jù)并使用bs4解析頁(yè)面,現(xiàn)在來(lái)到最關(guān)鍵的步驟:如何從解析完的頁(yè)面中提取需要的內(nèi)容。

在Beautiful Soup中,我們可以使用find/find_all來(lái)定位元素,但我更習(xí)慣使用CSS選擇器.select,因?yàn)榭梢韵袷褂肅SS選擇元素一樣向下訪(fǎng)問(wèn)DOM樹(shù)。

現(xiàn)在我們用代碼講解如何從解析完的頁(yè)面中提取B站熱榜的數(shù)據(jù),首先我們需要找到存儲(chǔ)數(shù)據(jù)的標(biāo)簽,在榜單頁(yè)面按下F12并按照下圖指示找到

可以看到每一個(gè)視頻信息都被包在class="rank-item"的li標(biāo)簽下,那么代碼就可以這樣寫(xiě)

  1. all_products = [] 
  2.  
  3. products = soup.select('li.rank-item') 
  4. for product in products: 
  5.     rank = product.select('div.num')[0].text 
  6.     name = product.select('div.info > a')[0].text.strip() 
  7.     play = product.select('span.data-box')[0].text 
  8.     comment = product.select('span.data-box')[1].text 
  9.     up = product.select('span.data-box')[2].text 
  10.     url = product.select('div.info > a')[0].attrs['href'] 
  11.  
  12.     all_products.append({ 
  13.         "視頻排名":rank, 
  14.         "視頻名": name, 
  15.         "播放量": play, 
  16.         "彈幕量": comment, 
  17.         "up主": up, 
  18.         "視頻鏈接": url 
  19.     }) 

在上面的代碼中,我們先使用soup.select('li.rank-item'),此時(shí)返回一個(gè)list包含每一個(gè)視頻信息,接著遍歷每一個(gè)視頻信息,依舊使用CSS選擇器來(lái)提取我們要的字段信息,并以字典的形式存儲(chǔ)在開(kāi)頭定義好的空列表中。

可以注意到我用了多種選擇方法提取去元素,這也是select方法的靈活之處,感興趣的讀者可以進(jìn)一步自行研究。

第四步:存儲(chǔ)數(shù)據(jù)

通過(guò)前面三步,我們成功的使用requests+bs4從網(wǎng)站中提取出需要的數(shù)據(jù),最后只需要將數(shù)據(jù)寫(xiě)入Excel中保存即可。

如果你對(duì)pandas不熟悉的話(huà),可以使用csv模塊寫(xiě)入,需要注意的是設(shè)置好編碼encoding='utf-8-sig',否則會(huì)出現(xiàn)中文亂碼的問(wèn)題

  1. import csv 
  2. keys = all_products[0].keys() 
  3.  
  4. with open('B站視頻熱榜TOP100.csv', 'w', newline=''encoding='utf-8-sig') as output_file: 
  5.     dict_writer = csv.DictWriter(output_file, keys) 
  6.     dict_writer.writeheader() 
  7.     dict_writer.writerows(all_products) 

如果你熟悉pandas的話(huà),更是可以輕松將字典轉(zhuǎn)換為DataFrame,一行代碼即可完成

  1. import pandas as pd 
  2. keys = all_products[0].keys() 
  3.  
  4. pd.DataFrame(all_products,columns=keys).to_csv('B站視頻熱榜TOP100.csv', encoding='utf-8-sig'

小結(jié)

至此我們就成功使用Python將b站熱門(mén)視頻榜單數(shù)據(jù)存儲(chǔ)至本地,大多數(shù)基于requests的爬蟲(chóng)基本都按照上面四步進(jìn)行。

不過(guò)雖然看上去簡(jiǎn)單,但是在真實(shí)場(chǎng)景中每一步都沒(méi)有那么輕松,從請(qǐng)求數(shù)據(jù)開(kāi)始目標(biāo)網(wǎng)站就有多種形式的反爬、加密,到后面解析、提取甚至存儲(chǔ)數(shù)據(jù)都有很多需要進(jìn)一步探索、學(xué)習(xí)。

本文選擇B站視頻熱榜也正是因?yàn)樗銐蚝?jiǎn)單,希望通過(guò)這個(gè)案例讓大家明白爬蟲(chóng)的基本流程,最后附上完整代碼

  1. import requests 
  2. from bs4 import BeautifulSoup 
  3. import csv 
  4. import pandas as pd 
  5.  
  6. url = 'https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3' 
  7. page = requests.get(url) 
  8. soup = BeautifulSoup(page.content, 'html.parser') 
  9.  
  10. all_products = [] 
  11.  
  12. products = soup.select('li.rank-item') 
  13. for product in products: 
  14.     rank = product.select('div.num')[0].text 
  15.     name = product.select('div.info > a')[0].text.strip() 
  16.     play = product.select('span.data-box')[0].text 
  17.     comment = product.select('span.data-box')[1].text 
  18.     up = product.select('span.data-box')[2].text 
  19.     url = product.select('div.info > a')[0].attrs['href'] 
  20.  
  21.     all_products.append({ 
  22.         "視頻排名":rank, 
  23.         "視頻名": name, 
  24.         "播放量": play, 
  25.         "彈幕量": comment, 
  26.         "up主": up, 
  27.         "視頻鏈接": url 
  28.     }) 
  29.  
  30.  
  31. keys = all_products[0].keys() 
  32.  
  33. with open('B站視頻熱榜TOP100.csv', 'w', newline=''encoding='utf-8-sig') as output_file: 
  34.     dict_writer = csv.DictWriter(output_file, keys) 
  35.     dict_writer.writeheader() 
  36.     dict_writer.writerows(all_products) 
  37.  
  38. ### 使用pandas寫(xiě)入數(shù)據(jù) 
  39. pd.DataFrame(all_products,columns=keys).to_csv('B站視頻熱榜TOP100.csv', encoding='utf-8-sig'

 

責(zé)任編輯:趙寧寧 來(lái)源: 早起Python
相關(guān)推薦

2021-07-14 09:00:00

JavaFX開(kāi)發(fā)應(yīng)用

2025-05-07 00:31:30

2022-12-07 08:42:35

2021-12-02 10:25:25

HttpCanaryApp視頻

2021-08-02 07:35:19

Nacos配置中心namespace

2014-12-11 16:32:38

應(yīng)用安全Web應(yīng)用緩存控制頭域

2011-05-03 15:59:00

黑盒打印機(jī)

2011-01-10 14:41:26

2020-08-12 09:07:53

Python開(kāi)發(fā)爬蟲(chóng)

2020-10-26 15:09:35

Python爬蟲(chóng)網(wǎng)頁(yè)數(shù)據(jù)

2021-09-30 18:27:38

數(shù)據(jù)倉(cāng)庫(kù)ETL

2020-12-08 10:32:15

Python郵件tcp

2021-01-19 09:06:21

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

2021-03-12 10:01:24

JavaScript 前端表單驗(yàn)證

2021-12-15 08:49:21

gpio 子系統(tǒng)pinctrl 子系統(tǒng)API

2020-05-15 08:07:33

JWT登錄單點(diǎn)

2022-07-22 12:45:39

GNU

2022-10-30 10:31:42

i2ccpuftrace

2021-12-29 20:20:25

結(jié)構(gòu)化數(shù)據(jù)Pandas

2023-04-26 12:46:43

DockerSpringKubernetes
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

男男做爰猛烈叫床爽爽小说 | 国产成人久久婷婷精品流白浆| 亚洲成a人片77777精品| 国产欧美二区| 伊人久久大香线蕉av一区二区| 91精产国品一二三产区别沈先生| 色呦呦在线观看视频| 不卡视频免费播放| 国产在线久久久| 日韩污视频在线观看| gogogo高清在线观看一区二区| 日韩欧美国产系列| 欧美日韩大尺度| 日本在线观看高清完整版| 久久久精品免费免费| 亚洲伊人一本大道中文字幕| 天天做天天爱夜夜爽| 正在播放日韩欧美一页| 亚洲日韩中文字幕在线播放| 亚洲成人福利视频| 成人四虎影院| 大伊人狠狠躁夜夜躁av一区 | 韩日精品视频| 一区二区三欧美| 99re这里只有| 欧美黄视频在线观看| 欧美综合一区二区| 国产免费毛卡片| 电影k8一区二区三区久久 | 日韩电影大片中文字幕| 999热精品视频| 成人一区视频| 一本色道久久加勒比精品 | 日韩va欧美va亚洲va久久| 久久久久久久成人| 欧美第一页在线观看| 人人狠狠综合久久亚洲婷| 亚洲美女在线看| 中文字幕影片免费在线观看| www.久久东京| 日韩精品中文字幕在线不卡尤物| 国产欧美一区二| 成人一级视频| 欧美日韩午夜影院| 91女神在线观看| 国产乱子精品一区二区在线观看| 91搞黄在线观看| 黄色片久久久久| 一区二区乱码| 欧美性猛交99久久久久99按摩| 欧美午夜性视频| 精精国产xxxx视频在线中文版| 亚洲欧美aⅴ...| 中国黄色录像片| 3d玉蒲团在线观看| 一区二区三区中文在线观看| 国产女教师bbwbbwbbw| 97超碰在线公开在线看免费| 亚洲欧美区自拍先锋| 免费cad大片在线观看| 欧美xxx黑人xxx水蜜桃| 亚洲福利视频一区二区| 成年人午夜免费视频| 国产粉嫩在线观看| 欧美午夜精品伦理| 自拍偷拍 国产| 在线免费成人| 日韩欧美中文一区| 插我舔内射18免费视频| 竹菊久久久久久久| 少妇av一区二区三区| 在线免费看av网站| 黄色亚洲精品| 欧日韩不卡在线视频| 波多野结衣绝顶大高潮| 精品一区二区免费视频| 97免费资源站| 日本黄在线观看| 国产精品视频看| 日韩视频 中文字幕| 成人一级福利| 欧美色网站导航| 国产xxx在线观看| 欧美激情在线精品一区二区三区| 色悠悠久久久久| 日本少妇xxxx动漫| 欧美aⅴ一区二区三区视频| 91在线看www| 天天综合网在线观看| 欧美激情中文不卡| 黑人巨茎大战欧美白妇| 女生影院久久| 日韩一本二本av| 日韩av无码一区二区三区不卡| 精品72久久久久中文字幕| 久久久精品一区二区三区| 麻豆疯狂做受xxxx高潮视频| 丝袜诱惑制服诱惑色一区在线观看 | 欧美91在线|欧美| 精品免费国产一区二区三区四区| 午夜理伦三级做爰电影| 在线观看免费一区二区| 国产成人91久久精品| 精品乱子伦一区二区| 91免费观看视频| 日本a级片在线观看| 六月婷婷综合| 欧美精品一区二区三区四区| 妖精视频在线观看免费 | 久久噜噜噜精品国产亚洲综合 | 免费不卡在线视频| 激情视频在线观看一区二区三区| 最新国产在线观看| 欧美日韩国产丝袜美女| 日本一本在线视频| 成人精品亚洲| 欧美最猛性xxxxx免费| 蜜桃视频在线观看www| 亚洲欧洲三级电影| 看欧美ab黄色大片视频免费| 免费成人三级| 欧美另类在线播放| 一级全黄裸体免费视频| 久久久久国产精品人| 日韩视频免费播放| 蜜桃精品视频| www国产91| 久久久999久久久| 26uuu另类欧美| 日韩中文字幕在线免费| 亚洲精品午夜| 久久亚洲精品视频| 国产伦精品一区二区三区免.费| 久久男人中文字幕资源站| www.九色.com| 亚洲精品a区| 欧美另类暴力丝袜| 国产日韩精品suv| 1区2区3区国产精品| 天天干天天爽天天射| 精品一级毛片| 国产精品99久久久久久久久| 毛片在线能看| 色综合中文字幕| 久久久久久九九九九九| 久久不射中文字幕| 欧洲精品国产| 蜜桃视频成人m3u8| 在线视频精品一| 一区二区视频网站| 国产精品久99| 男插女视频网站| 欧美日韩成人| 国产精品伊人日日| 中文在线资源| 亚洲视屏在线播放| 中文字幕在线观看第二页| 国产精品久久久久久久久快鸭| 亚洲综合欧美激情| 91精品精品| www.久久爱.cn| 成av人片在线观看www| 亚洲精品天天看| 波多野结衣一区二区三区四区| 国产拍揄自揄精品视频麻豆| jizz欧美性11| 午夜天堂精品久久久久| 国产经典一区二区三区| 依依综合在线| 中文字幕亚洲激情| 国产高清免费观看| 婷婷综合五月天| 国产精品一二三区在线观看| 麻豆久久久久久久| 日韩成人三级视频| 免费欧美一区| 92看片淫黄大片欧美看国产片| 黄色在线看片| 国产亚洲欧洲黄色| 99在线无码精品入口| 欧美日韩在线视频观看| 国产三级精品三级观看| 成人一道本在线| 人妻丰满熟妇av无码区app| 香蕉av一区二区| 激情视频在线观看一区二区三区| 成人免费一区| 国内精品小视频| h视频网站在线观看| 欧美成人官网二区| 日本视频免费观看| 一区二区三区国产豹纹内裤在线| 久久久久国产精品区片区无码| 蜜臀a∨国产成人精品| 搞av.com| 成人一区而且| 国产日韩欧美综合精品| 国产成人免费| 91精品国产九九九久久久亚洲| av电影在线观看网址| 亚洲成人aaa| 国产一区二区三区黄片| 日韩欧美国产视频| 精品国产乱码久久久久久鸭王1| 久久久精品免费网站| 久久无码专区国产精品s| 日本不卡123| 精品国产免费av| 欧美日韩亚洲一区在线观看| 午夜精品一区二区在线观看| 久久久久影视| 91高跟黑色丝袜呻吟在线观看| 日韩不卡免费高清视频| 韩国19禁主播vip福利视频| 蜜桃视频在线观看www社区 | 放荡的美妇在线播放| 国产日韩欧美综合一区| 国产又粗又长又爽| 国产成人免费高清| 亚洲一区二区三区观看| 日韩电影在线一区二区三区| 日韩av三级在线| 亚洲无线一线二线三线区别av| 亚洲电影一二三区| 少妇精品久久久一区二区| 久久精品第九区免费观看 | 加勒比av在线播放| 亚洲人成7777| 日本一二三区在线观看| 中国色在线观看另类| 久久久久久久毛片| 久久精品视频一区二区三区| 国内精品久久99人妻无码| 不卡的av电影在线观看| 性xxxxxxxxx| 国产成人精品三级麻豆| 国产xxxxhd| 国产一区二区三区黄视频 | 欧美日韩国产免费观看| 国产女人18毛片| 一区二区在线| 午夜啪啪福利视频| 中文字幕人成人乱码| 一本二本三本亚洲码| 亚洲色图网站| 992tv成人免费观看| 亚洲精品极品少妇16p| 久久久久久久久影视| 欧美久久一区| 欧美又粗又长又爽做受| 在线不卡视频| 少妇人妻在线视频| 亚洲一区日本| 精品免费国产一区二区| 免费在线成人网| 久久久久久久久久久久久久久国产| 久久69国产一区二区蜜臀| 一二三av在线| 成人网在线播放| 亚洲av无码一区二区三区网址 | 久久久久久久久久久久久久久久久 | 中文字幕日韩精品久久| 国产精品久久久乱弄 | 精品99999| 日本一卡二卡四卡精品| 在线观看日韩www视频免费| 欧美成人性生活视频| 欧美国产在线视频| 一级毛片久久久| 成人黄色激情网| 91精品尤物| 欧美日韩国产不卡在线看| 欧美日韩国产一区二区三区不卡| 一个色的综合| 激情综合亚洲| 一道本视频在线观看| 国产精品亚洲а∨天堂免在线| 私密视频在线观看| 国产欧美日韩激情| 可以直接看的黄色网址| 欧美日韩国产综合新一区| 中文在线字幕av| 欧美www视频| 黄色av网站在线| 欧美成人黄色小视频| 波多野结衣亚洲| 成人免费福利在线| 日韩成人av在线资源| 亚洲一卡二卡区| 国产精品毛片在线看| 亚洲欧美aaa| 91网站最新网址| 成年人二级毛片| 一本久久综合亚洲鲁鲁五月天| 国产精品人人爽| 亚洲欧美制服第一页| 污污影院在线观看| 国产精品普通话| 另类尿喷潮videofree| 自拍偷拍亚洲色图欧美| 久久99伊人| 成人做爰www看视频软件| 国产精品污污网站在线观看| 黄色一级片免费看| 欧美一区二区三区婷婷月色| 精品美女视频在线观看免费软件| 欧美黄色片在线观看| 久久精品嫩草影院| 蜜桃在线一区二区三区精品| 国产精品九九| 五月天视频在线观看| 久久日一线二线三线suv| 久久婷婷综合国产| 777久久久精品| 成年在线电影| 国产成人黄色av| 亚州综合一区| cao在线观看| 国产成人综合在线观看| 69夜色精品国产69乱| 欧美午夜精品一区二区蜜桃 | 久久―日本道色综合久久 | 在线观看日韩毛片| 亚洲色图欧美视频| 久久久久久久久久久人体| 国产精品亚洲四区在线观看| 午夜精品区一区二区三| 日韩成人免费在线| 无码一区二区三区在线| 欧美日韩中文在线| 深夜福利在线看| 97热在线精品视频在线观看| jizz国产精品| 黄页网站在线观看视频| 丁香亚洲综合激情啪啪综合| 久久久久久国产精品视频| 欧美大片拔萝卜| 黄色在线免费| 亚洲xxxx18| 欧美在线资源| 国产成人av免费观看| 一区二区日韩电影| 免费av一级片| 2020久久国产精品| 自拍自偷一区二区三区| 国语对白做受xxxxx在线中国 | 日韩免费电影一区二区三区| 美女精品一区| 精品人伦一区二区| 欧美三级日韩在线| 国产超级va在线视频| 91成人免费视频| 99re国产精品| 国产精品无码久久久久久| 色88888久久久久久影院按摩| 国产www.大片在线| 国产精品网红直播| 一区二区三区中文| 尤物网站在线观看| 日本精品视频一区二区三区| 91短视频版在线观看www免费| 国产欧美一区二区三区久久| 一本到12不卡视频在线dvd| 成人啪啪18免费游戏链接| 第一福利永久视频精品| 成人在线免费视频| 国产主播喷水一区二区| 欧美三级在线| 伊人网在线视频观看| 欧美老女人在线| av在线不卡免费| 日韩不卡av| 国产麻豆精品在线观看| 成年人午夜视频| 色噜噜狠狠狠综合曰曰曰88av| 日韩一区免费| 国产福利视频在线播放| 亚洲欧美电影院| 日本1级在线| 91久久国产婷婷一区二区| 亚洲黄色成人| 亚洲高潮女人毛茸茸| 日韩精品影音先锋| 性欧美gay| 99国产精品白浆在线观看免费| 久久免费的精品国产v∧| 国产免费叼嘿网站免费| 欧美亚洲成人免费| 亚洲欧美网站在线观看| 久久av无码精品人妻系列试探| 日韩欧美你懂的| 欧美性猛交xxx高清大费中文| 91xxx视频| 久久九九影视网| www.色呦呦| 国产欧美日韩综合精品| 亚洲欧美清纯在线制服| 欧美成人国产精品高潮| 伊人男人综合视频网| 精品三级av|