精品欧美一区二区三区在线观看 _久久久久国色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)

国产又黄又粗的视频| 国产熟人av一二三区| 成人免费视频国产| 午夜一级久久| www.欧美免费| 欧美夫妇交换xxx| 在线国产成人影院| 樱桃国产成人精品视频| 麻豆视频成人| 国产欧美一级片| 亚洲综合国产| 美女少妇精品视频| 亚洲天堂岛国片| 136福利精品导航| 欧美午夜精品免费| 日韩网站在线免费观看| 日本三级视频在线播放| 不卡大黄网站免费看| 国产精品视频网站| 四虎精品永久在线| 欧美亚洲不卡| 啊v视频在线一区二区三区| 艳妇乳肉亭妇荡乳av| 自拍偷拍亚洲| 欧美性色欧美a在线播放| 大陆av在线播放| 成人三级网址| 国产精品毛片无遮挡高清| 久久精品国产综合精品| 亚洲第一精品网站| 久久国产成人午夜av影院| 欧美在线免费看| 国产污视频在线看| 中文字幕亚洲精品乱码| 在线观看亚洲视频| 亚洲av无码成人精品国产| 国产精品白浆| 日韩欧美不卡一区| 亚洲精品永久视频| 国产一区二区三区影视| 日韩欧中文字幕| 2018中文字幕第一页| 1024在线播放| 亚洲人成小说网站色在线| 亚洲精品国产一区| 国产精品一二三区视频| 91麻豆国产在线观看| 国产在线精品二区| 免费国产羞羞网站视频| 国产成人精品午夜视频免费| 91精品一区二区| 亚洲在线观看av| 美女视频一区在线观看| 国产精品福利在线| 亚洲欧美一二三区| 日日夜夜免费精品视频| 日韩美女中文字幕| 看黄色一级大片| 爽好多水快深点欧美视频| 日韩女优人人人人射在线视频| 久久黄色精品视频| 美女国产精品| 国产精品9999| 最近中文字幕在线观看| 美女诱惑一区二区| 国产日韩综合一区二区性色av| 91精品国产色综合久久不8| 久久99久久99| 亚洲最大成人在线| 黑人操亚洲女人| 99视频热这里只有精品免费| 免费成人在线观看av| 男同在线观看| 国产精品高潮久久久久无| 懂色av粉嫩av蜜臀av| 日本色护士高潮视频在线观看| 一区二区三区不卡在线观看| 黄色成人在线看| 怡红院成人在线| 欧美日韩亚洲综合一区二区三区| 国产永久免费网站| 国产精品99久久免费观看| 亚洲男人的天堂网站| 国产123在线| 你懂的视频一区二区| 97国产在线观看| 亚洲精品国产精品乱码视色| 久久91精品久久久久久秒播| 97人人干人人| 国产青青草在线| 亚洲视频一二三区| 日韩avxxx| 国产人与zoxxxx另类91| 亚洲成人aaa| 91l九色lporny| 亚洲欧美综合| 国产成人精品免费视频| 国产成a人亚洲精v品无码| 99久久免费精品高清特色大片| 欧美亚洲免费在线| 亚洲性图自拍| 日本久久精品电影| 亚洲v在线观看| 欧美亚洲精品在线| 午夜精品久久17c| 91午夜交换视频| 26uuu国产日韩综合| av磁力番号网| **欧美日韩在线观看| 日韩女优电影在线观看| 永久免费av无码网站性色av| 伊人成人在线视频| 国产男女猛烈无遮挡91| 亚洲av成人精品日韩在线播放| 国产精品乱码久久久久久| 69sex久久精品国产麻豆| 欧美亚洲人成在线| 亚洲毛片在线看| 黄色一级免费视频| 久久精品国产成人一区二区三区 | 欧美夫妻性生活视频| 少妇太紧太爽又黄又硬又爽| 国产成人亚洲综合色影视| 先锋影音一区二区三区| 69av成人| 精品三级在线看| 国产乱子轮xxx农村| 免费日韩av片| 国产日韩一区欧美| 在线中文字幕视频观看| 欧美日韩亚洲另类| 精品无码人妻一区二区免费蜜桃 | 日本成人中文| 欧美国产日韩一区| a级片免费观看| 国产精品福利影院| 亚洲一区二区三区四区五区xx| 果冻天美麻豆一区二区国产| 欧美日产国产成人免费图片| 国产精品天天操| 中文一区在线播放| 亚洲色成人一区二区三区小说| 国产精品一线| 国模极品一区二区三区| 性一交一乱一乱一视频| 亚洲视频一区在线| 亚洲综合20p| 伊人色**天天综合婷婷| 91久久精品国产91久久性色| 欧美日本一道| 制服丝袜av成人在线看| 污污的视频在线免费观看| 九九国产精品视频| 裸体裸乳免费看| 日本免费一区二区视频| 欧美寡妇偷汉性猛交| 亚洲精品久久久狠狠狠爱| 一片黄亚洲嫩模| zjzjzjzjzj亚洲女人| 亚洲黄色三级| 欧美精品一区二区三区四区五区| 黄色成人免费网| 国产亚洲精品久久久| 波多野结衣视频免费观看| 国产亚洲精品精华液| 无需播放器的av| 五月久久久综合一区二区小说| 91久久精品在线| 久草在线资源站资源站| 日韩av一区在线观看| 国产伦精品一区二区三区视频网站| 国产日本亚洲高清| 亚洲综合av在线播放| 欧美三级第一页| 久久久久久久久四区三区| 日本精品裸体写真集在线观看| 中文字幕亚洲欧美日韩在线不卡| 97精品人妻一区二区三区香蕉| 国产精品福利在线播放| 一二三区视频在线观看| 模特精品在线| 在线观看亚洲视频啊啊啊啊| 911精品国产| 国产91网红主播在线观看| 欧美一区二区三区| 精品国产百合女同互慰| 中文字幕免费高清网站| 亚洲色图欧美在线| 久久久久9999| 激情综合网av| 337p粉嫩大胆噜噜噜鲁| 国产精品成人a在线观看| 国产精品香蕉视屏| 亚洲爱爱视频| 国内久久久精品| 北条麻妃在线| 亚洲第一av在线| 中文字幕在线观看免费| 亚洲午夜av在线| 欧美a在线播放| 成人精品国产一区二区4080| 国产一区二区在线免费播放| 欧美日韩在线大尺度| 日本在线视频不卡| 操欧美女人视频| 国产欧美日韩免费| 波多视频一区| 欧美黄色免费网站| www.在线视频.com| 亚洲国产天堂网精品网站| 国产精品系列视频| 色综合久久99| 国产午夜福利片| 综合精品久久久| 少妇无套高潮一二三区| 成人av在线看| 一级黄色免费毛片| 日韩福利电影在线| a√天堂在线观看| 亚洲特级毛片| 中文字幕制服丝袜在线| 精品欧美激情在线观看| 精品乱码一区二区三区| 日韩视频在线直播| 国产在线精品播放| 蜜桃视频成人m3u8| 欧美做受高潮1| 96av在线| 性色av香蕉一区二区| 免费污视频在线| 美日韩在线视频| 免费av在线网站| 中文字幕自拍vr一区二区三区| 精品乱码一区二区三四区视频| 亚洲精品美女久久| 欧美一级片免费| 精品粉嫩超白一线天av| 午夜精品久久久久久久99| 欧美高清视频一二三区| 正在播放亚洲精品| 在线观看欧美日本| 无码人妻丰满熟妇区bbbbxxxx | 欧美久久久久久久久久久久久| 国产精品国内免费一区二区三区| 亚洲精品久久久久久一区二区| 国产一区二区三区网| 美女亚洲精品| 九一国产精品| 视频在线精品一区| 成人午夜av| 亚洲欧美一区二区原创| 欧美电影免费观看高清| 在线一区亚洲| 91成人免费| 伊人网在线免费| 国产精品99免费看| 色欲色香天天天综合网www| 亚洲福利一区| 久久美女福利视频| 日韩av一级电影| 亚洲欧美偷拍另类| 国产一区二区三区av电影 | 国产精品网站免费| 国产精品美女久久久浪潮软件| 精品一区二区中文字幕| 久久成人在线| 在线观看国产中文字幕| 国产一区啦啦啦在线观看| 秋霞午夜鲁丝一区二区| 成人妖精视频yjsp地址| 亚洲精品成人无码熟妇在线| 国产欧美日韩在线看| 国产一区第一页| 一区二区三区欧美激情| 日韩av女优在线观看| 在线视频国产一区| 91麻豆成人精品国产| 日韩欧美高清一区| 深夜视频在线免费| 伊人伊成久久人综合网小说| 黄色精品免费看| 国内精品视频久久| 国产精品成人国产| 国产成人精品日本亚洲11| 欧美女优在线视频| 热这里只有精品| 亚洲国产精品第一区二区| 五月天婷婷激情视频| 国产精品1区2区| 国产ts丝袜人妖系列视频| 国产精品美女久久久久高潮| 国产第100页| 欧美色国产精品| 日韩有码第一页| 爽爽爽爽爽爽爽成人免费观看| 欧美人与性动交α欧美精品图片| 日本视频久久久| 亚洲3区在线| 视频一区视频二区视频三区视频四区国产 | 国产午夜精品全部视频播放 | 国产免费久久av| 啪啪国产精品| 精品一区二区成人免费视频 | 一道本在线免费视频| 成人性生交大片免费看中文网站| 日本人亚洲人jjzzjjz| 亚洲国产综合色| 国产精品久久久久久免费免熟| 日韩精品免费在线观看| a黄色片在线观看| 国产精品99久久久久久人| 中文无码日韩欧| 性欧美.com| 午夜亚洲精品| 少妇熟女视频一区二区三区| 中文字幕在线不卡| 天码人妻一区二区三区在线看| 日韩精品一区二区在线观看| 都市激情一区| 全球成人中文在线| 国内自拍欧美| 国产爆乳无码一区二区麻豆| 久久国产人妖系列| 97人妻人人揉人人躁人人| 午夜伊人狠狠久久| 亚洲黄色一级大片| 久久九九免费视频| 国产精品99久久久久久董美香| 欧洲一区二区日韩在线视频观看免费 | jizz国产在线观看| 日韩av最新在线观看| 男女免费观看在线爽爽爽视频| 亚洲一区二区三区乱码aⅴ| 日韩欧美视频在线播放| 成人性做爰aaa片免费看不忠| 99re8在线精品视频免费播放| 国产一国产二国产三| 91精品国产综合久久久久久久久久 | 99热这里精品| 欧美成人午夜视频| 九九99久久精品在免费线bt| 曰韩不卡视频| 激情小说亚洲一区| 国产精品夜夜夜爽阿娇| 欧美日韩中文精品| 天天综合视频在线观看| 国产精品主播视频| 久久亚洲在线| 中文字幕精品一区二区三区在线| 日本一区二区三区在线不卡| 乱子伦一区二区三区| 亚洲视频在线播放| xxxxx.日韩| 在线视频不卡国产| 久久99久久99| 久久久精品视频免费观看| 日韩精品一区在线观看| ****av在线网毛片| 久久久久久国产精品一区| 久久这里只有| 一级片黄色录像| 在线91免费看| 韩国日本一区| 久久久久久亚洲精品不卡4k岛国 | 亚洲精品一二三四| 亚洲图片一区二区| 欧洲亚洲在线| 国产精品视频网站| 欧美精品麻豆| 亚洲av成人片色在线观看高潮 | 欧美第一黄色网| 国产成人在线中文字幕| 国产91在线视频观看| 中文字幕乱码日本亚洲一区二区| 91好色先生tv| 韩国日本不卡在线| 精品视频网站| 伊人精品视频在线观看| 亚洲国产精品影院| 国产在线小视频| 91在线在线观看| 国产精品普通话对白| 国产又粗又猛又爽又黄的视频小说| 日韩一区二区三区在线观看| 少妇视频在线观看| 精品国产无码在线| 99国产精品国产精品久久| 中文字幕在线一| 欧美激情中文字幕在线| 欧美限制电影| 欧美图片自拍偷拍| 色婷婷国产精品综合在线观看| 久操视频在线播放| 精品国产免费人成电影在线观...| 蜜桃精品视频在线观看| 久久久久久免费观看| 伊人成人开心激情综合网| 1313精品午夜理伦电影| 国产wwwxx| 亚洲va韩国va欧美va|