久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

一:前言

本次爬取的是喜馬拉雅的熱門(mén)欄目下全部電臺(tái)的每個(gè)頻道的信息和頻道中的每個(gè)音頻數(shù)據(jù)的各種信息,然后把爬取的數(shù)據(jù)保存到mongodb以備后續(xù)使用。這次數(shù)據(jù)量在70萬(wàn)左右。音頻數(shù)據(jù)包括音頻下載地址,頻道信息,簡(jiǎn)介等等,非常多。

昨天進(jìn)行了人生中第一次面試,對(duì)方是一家人工智能大數(shù)據(jù)公司,我準(zhǔn)備在這大二的暑假去實(shí)習(xí),他們就要求有爬取過(guò)音頻數(shù)據(jù),所以我就來(lái)分析一下喜馬拉雅的音頻數(shù)據(jù)爬下來(lái)。目前我還在等待三面中,或者是通知最終面試消息。 (因?yàn)槟艿玫揭欢隙ǎ还艹晒εc否都很開(kāi)心)

二:運(yùn)行環(huán)境

  • IDE:Pycharm 2017
  • Python3.6
  • pymongo 3.4.0
  • requests 2.14.2
  • lxml 3.7.2
  • BeautifulSoup 4.5.3

三:實(shí)例分析

1.首先進(jìn)入這次爬取的主頁(yè)面?http://www.ximalaya.com/dq/all/?,可以看到每頁(yè)12個(gè)頻道,每個(gè)頻道下面有很多的音頻,有的頻道中還有很多分頁(yè)。抓取計(jì)劃:循環(huán)84個(gè)頁(yè)面,對(duì)每個(gè)頁(yè)面解析后抓取每個(gè)頻道的名稱(chēng),圖片鏈接,頻道鏈接保存到mongodb。

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

熱門(mén)頻道

2.打開(kāi)開(kāi)發(fā)者模式,分析頁(yè)面,很快就可以得到想要的數(shù)據(jù)的位置。下面的代碼就實(shí)現(xiàn)了抓取全部熱門(mén)頻道的信息,就可以保存到mongodb中。

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

分析頻道

3.下面就是開(kāi)始獲取每個(gè)頻道中的全部音頻數(shù)據(jù)了,前面通過(guò)解析頁(yè)面獲取到了美國(guó)頻道的鏈接。

比如我們進(jìn)入?http://www.ximalaya.com/6565682/album/237771?這個(gè)鏈接后分析頁(yè)面結(jié)構(gòu)。可以看出每個(gè)音頻都有特定的ID,這個(gè)ID可以在一個(gè)div中的屬性中獲取。使用split()和int()來(lái)轉(zhuǎn)換為單獨(dú)的ID。

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

頻道頁(yè)面分析

4.接著點(diǎn)擊一個(gè)音頻鏈接,進(jìn)入開(kāi)發(fā)者模式后刷新頁(yè)面然后點(diǎn)擊XHR,再點(diǎn)擊一個(gè)json鏈接可以看到這個(gè)就包括這個(gè)音頻的全部詳細(xì)信息。

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

音頻頁(yè)面分析

5.上面只是對(duì)一個(gè)頻道的主頁(yè)面解析全部音頻信息,但是實(shí)際上頻道的音頻鏈接是有很多分頁(yè)的。

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

分頁(yè)

6.全部代碼

完整代碼地址?github.com/rieuse/learnPython

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

7.如果改成異步的形式可以快一點(diǎn),只需要修改成下面這樣就行了。我試了每分鐘要比普通的多獲取近100條數(shù)據(jù)。這個(gè)源代碼也在github中。

Python爬蟲(chóng)入門(mén)之Python爬取音頻數(shù)據(jù)

異步

五:總結(jié)

這次抓取的數(shù)據(jù)量在70萬(wàn)左右,這些數(shù)據(jù)后續(xù)可以進(jìn)行很多研究,比如播放量排行榜、時(shí)間區(qū)段排行、頻道音頻數(shù)量等等。后續(xù)我將繼續(xù)學(xué)習(xí)使用科學(xué)計(jì)算和繪圖工具來(lái)進(jìn)行數(shù)據(jù)分析,清洗的工作。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!
<p id="o0hlv"></p><pre id="o0hlv"><label id="o0hlv"></label></pre>

      主站蜘蛛池模板: 长沙市| 资中县| 西乡县| 赣州市| 布尔津县| 大渡口区| 唐山市| 增城市| 双柏县| 连南| 阿鲁科尔沁旗| 讷河市| 长治县| 云安县| 湖口县| 青铜峡市| 施秉县| 宁城县| 安陆市| 邹平县| 榆林市| 南涧| 太谷县| 新田县| 土默特右旗| 荆州市| 万州区| 聂拉木县| 阜南县| 庄河市| 铁力市| 新源县| 彭阳县| 会理县| 宁乡县| 沙湾县| 珲春市| 璧山县| 长阳| 津南区| 镶黄旗|