国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python爬蟲實(shí)戰(zhàn)零基礎(chǔ)(3)——某云音樂

這篇具有很好參考價(jià)值的文章主要介紹了python爬蟲實(shí)戰(zhàn)零基礎(chǔ)(3)——某云音樂。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

聲明:僅供參考學(xué)習(xí),參考,若有不足,歡迎指正

你是不是遇到過這種情況,在pc端上音樂無(wú)法下載,必須下載客戶端才能下載?
那么,爬蟲可以解決這個(gè)麻煩!繼續(xù)實(shí)戰(zhàn)利用request和xpath爬取網(wǎng)上音樂。

本文主要是在網(wǎng)頁(yè)端下載音樂,如果你有客戶端也可以,太高級(jí)的筆者也不會(huì)。這是一個(gè)基礎(chǔ)皮毛的練習(xí)

分析網(wǎng)頁(yè)

定位目標(biāo)網(wǎng)址:(你也可以在瀏覽器打開某云之后隨便進(jìn)入一個(gè)歌單)
https://music.163.com/#/playlist?id=26467411

對(duì)于網(wǎng)頁(yè)上的音樂在進(jìn)行下載時(shí),經(jīng)常會(huì)彈出提示頁(yè)面:請(qǐng)前往客戶端下載?。?!
非常討厭了也是,好好的下載一首歌曲,非要弄得這么麻煩。甚至,有些音樂在下載了軟件后,需要付費(fèi)或者VIP,萬(wàn)惡的資本家。

本次實(shí)戰(zhàn)就可以通過簡(jiǎn)單的爬蟲解決以上問題,直接下載歌曲。

  • 首先,檢查—> Network —> 刷新
  • 點(diǎn)擊 文檔(Doc),可以看到它的標(biāo)頭里面的請(qǐng)求網(wǎng)址為:
    https://music.163.com/playlist?id=26467411 這跟最開始是不一樣的。

這是因?yàn)槲覀兯?qǐng)求的網(wǎng)址并非是瀏覽器地址欄上的網(wǎng)址,通過這張截圖,很清晰的發(fā)現(xiàn)我們所請(qǐng)求的網(wǎng)址是哪個(gè)了。

  • 通過對(duì)每首歌曲打開,進(jìn)行網(wǎng)頁(yè)源代碼分析不難發(fā)現(xiàn),本網(wǎng)頁(yè)的歌曲都有一個(gè)共同的特點(diǎn):即前面的網(wǎng)址為 https://music.163.com/#/song?id= 加每首歌曲的 id 號(hào)。
    python爬蟲實(shí)戰(zhàn)零基礎(chǔ)(3)——某云音樂,python爬蟲,python,爬蟲,開發(fā)語(yǔ)言
    然而,目前為止,我們僅僅是找到了些許規(guī)律,并沒有找到歌曲的真正鏈接,要真正下載到每一首歌曲,還遙不可及。

音樂文件一般為mpeg,mp3,mpeg-4,midi,mwa,m4a等

到現(xiàn)在為止還沒有請(qǐng)求音樂,當(dāng)我們?cè)谶M(jìn)行點(diǎn)擊播放時(shí)會(huì)發(fā)現(xiàn):
python爬蟲實(shí)戰(zhàn)零基礎(chǔ)(3)——某云音樂,python爬蟲,python,爬蟲,開發(fā)語(yǔ)言
當(dāng)我們?cè)谶M(jìn)行播放音樂時(shí),請(qǐng)求數(shù)量增多,說明該網(wǎng)頁(yè)又重新進(jìn)行了對(duì)網(wǎng)頁(yè)的請(qǐng)求。通過重新查找發(fā)現(xiàn)(只需查看后面新的內(nèi)容)這次有了一些 .m4a 文件。

當(dāng)點(diǎn)擊這些文件打開時(shí)會(huì)發(fā)現(xiàn),有一個(gè)新的 Request URL:,當(dāng)你將該網(wǎng)址復(fù)制在新的網(wǎng)頁(yè)下進(jìn)行打開,會(huì)出現(xiàn)如下圖所示(打開時(shí)瀏覽器會(huì)自動(dòng)進(jìn)行下載該音樂)
python爬蟲實(shí)戰(zhàn)零基礎(chǔ)(3)——某云音樂,python爬蟲,python,爬蟲,開發(fā)語(yǔ)言

結(jié)合上面的情況來說,我們是不是已經(jīng)成功了呢?但很難過的告訴你,這個(gè)網(wǎng)址在短時(shí)間內(nèi)打開,的確會(huì)有用,但是,它是有時(shí)間限制的,不信的話,你可以過五分鐘(或許還不需要這么久)再重新打開該網(wǎng)址,試一下。
所以這種方式行不通,由于是初學(xué)者,我們就需要點(diǎn)外援了。

第二種方式

  • 這里介紹一個(gè)新的URL:(不要問這個(gè)怎么來的)

http://music.163.com/song/media/outer/url?id=

在之前的分析中,我們發(fā)現(xiàn)了一個(gè)很重要的一點(diǎn),便是這10首歌曲都是一個(gè)網(wǎng)址加每首歌曲的id所在的新頁(yè)面。

我們有了上面的這個(gè)網(wǎng)址,便可以為所欲為了。你現(xiàn)在便可以立馬復(fù)制上面的鏈接,在網(wǎng)頁(yè)上找到一首歌曲的id號(hào)添加至網(wǎng)址后面進(jìn)行打開(如:http://music.163.com/song/media/outer/url?id=36897723),是不是得到了如下的界面:
python爬蟲實(shí)戰(zhàn)零基礎(chǔ)(3)——某云音樂,python爬蟲,python,爬蟲,開發(fā)語(yǔ)言
通過這個(gè)頁(yè)面就可以直接下載。

批量爬取

首先,每首音樂可以通過這個(gè)網(wǎng)址 ? id 進(jìn)行下載,所以,我們第一步便是想辦法獲取每首音樂的 id 。根據(jù)之前的分析,不難發(fā)現(xiàn),每首音樂的 id 都在一個(gè)<a>標(biāo)簽內(nèi),我們只要獲取這個(gè)<a>就可以了。

一步一步來開始寫代碼

  1. 根據(jù)真正的目標(biāo)網(wǎng)址(注意真正的)獲取源碼信息
import requests
from lxml import etree

# 真實(shí)地址在Network--Doc
url = 'https://music.163.com/playlist?id=26467411'

# 請(qǐng)求(requests) 圖片,視頻,音頻  content  | 字符串 text
html_str = requests.get(url).text
print(html_str)
print(type(html_str))    # 字符串類型

result = etree.HTML(html_str) 
  1. 從源碼中用 xpath 找到每首歌的id和name
song_ids = result.xpath('//a[contains(@href,"/song?")]/@href')   # 歌曲id
song_names = result.xpath('//a[contains(@href,"/song?")]/text()')     # 歌名
# print(song_ids)
# print(song_names)     #列表
for song_id,song_name in zip(song_ids,song_names):
    print(song_id)
    print(song_name)

整理一下
通過打印發(fā)現(xiàn),前面多了一些 /song?id= ,這時(shí),便使用下面這行代碼,進(jìn)行刪減,仔細(xì)觀察打印結(jié)果發(fā)現(xiàn)后面多了三個(gè)無(wú)用的,這三個(gè)必須刪掉才行,不然在進(jìn)行后面的 URL 拼接,肯定會(huì)報(bào)錯(cuò),因?yàn)閴焊驼也坏竭@樣的一個(gè)網(wǎng)址。

count_id = song_id.strip('/song?id=')   # 去掉/song?id=
    # print(count_id)
    # 過濾含有“$”符號(hào)
    if ('$' in count_id) == False:
        print(count_id)
  1. 拼接URL后,在瀏覽器里打開上面的任意鏈接 song_url,即可獲取該音樂的鏈接,并進(jìn)行下載。但是,我們最終的目的是讓爬蟲自動(dòng)幫我們?nèi)肯螺d并進(jìn)行保存至文件夾,利用 for 循環(huán)就可以啦
song_url = base_url + count_id      # 拼接url
print(song_url)
mp3 = requests.get(song_url).content
# 保存數(shù)據(jù)
with open('yinyue/{}.mp3'.format(song_name),'wb') as file:
	file.write(mp3)

如需完整代碼,請(qǐng)自行查看。某云音樂爬取文章來源地址http://www.zghlxwxcb.cn/news/detail-675036.html

到了這里,關(guān)于python爬蟲實(shí)戰(zhàn)零基礎(chǔ)(3)——某云音樂的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【100天精通python】Day44:python網(wǎng)絡(luò)爬蟲開發(fā)_爬蟲基礎(chǔ)(爬蟲數(shù)據(jù)存儲(chǔ):基本文件存儲(chǔ),MySQL,NoSQL:MongDB,Redis 數(shù)據(jù)庫(kù)存儲(chǔ)+實(shí)戰(zhàn)代碼)

    目錄 1 數(shù)據(jù)存儲(chǔ) 1.1 爬蟲存儲(chǔ):基本文件存儲(chǔ) 1.2 爬蟲存儲(chǔ):使用MySQL 數(shù)據(jù)庫(kù) 1.3 爬蟲 NoSQL 數(shù)據(jù)庫(kù)使用 1.3.1 MongoDB 簡(jiǎn)介

    2024年02月11日
    瀏覽(24)
  • Python網(wǎng)絡(luò)爬蟲基礎(chǔ)進(jìn)階到實(shí)戰(zhàn)教程

    Python網(wǎng)絡(luò)爬蟲基礎(chǔ)進(jìn)階到實(shí)戰(zhàn)教程

    網(wǎng)絡(luò)爬蟲是指一種程序自動(dòng)獲取網(wǎng)頁(yè)信息的方式,它能夠自動(dòng)化地獲取互聯(lián)網(wǎng)上的數(shù)據(jù)。通過使用網(wǎng)絡(luò)爬蟲,我們可以方便地獲取到網(wǎng)絡(luò)上的各種數(shù)據(jù),例如網(wǎng)頁(yè)鏈接、文本、圖片、音頻、視頻等等。 網(wǎng)頁(yè)是由HTML標(biāo)簽和內(nèi)容組成,HTML標(biāo)簽通過標(biāo)簽屬性可以定位到需要的內(nèi)容

    2024年02月10日
    瀏覽(22)
  • Python3網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)

    1.1 URI和URL URI:統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier) URL:統(tǒng)一資源定位符(Uniform Resource Locator) URN:統(tǒng)一資源名稱(Uniform Resource Name) 1.2 HTTP和HTTPS HTTP:超文本傳輸協(xié)議(Hypertext Transfer Protocol) HTTPS:以安全為目標(biāo)的HTTP通道(Hypertext Transfer Protocol) 1.3 請(qǐng)求(Requset) 1.3.1 請(qǐng)求方式 函數(shù)

    2024年02月04日
    瀏覽(43)
  • 〖Python網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)②〗- Web網(wǎng)頁(yè)基礎(chǔ)

    訂閱:新手可以訂閱我的其他專欄。免費(fèi)階段訂閱量1000+ ????????????????python項(xiàng)目實(shí)戰(zhàn) ???????????????? Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,目前專欄免費(fèi)訂閱,在轉(zhuǎn)為付費(fèi)專欄前訂閱本專欄的,可以免費(fèi)訂閱付費(fèi)專欄,

    2023年04月26日
    瀏覽(50)
  • 【100天精通python】Day41:python網(wǎng)絡(luò)爬蟲開發(fā)_爬蟲基礎(chǔ)入門

    目錄 ?專欄導(dǎo)讀? 1網(wǎng)絡(luò)爬蟲概述 1.1?工作原理 1.2 應(yīng)用場(chǎng)景 1.3 爬蟲策略

    2024年02月12日
    瀏覽(34)
  • 【Python爬蟲開發(fā)基礎(chǔ)⑩】selenium概述

    ?? 個(gè)人主頁(yè) :為夢(mèng)而生~ 關(guān)注我一起學(xué)習(xí)吧! ?? 專欄 :python網(wǎng)絡(luò)爬蟲從基礎(chǔ)到實(shí)戰(zhàn) 歡迎訂閱!后面的內(nèi)容會(huì)越來越有意思~ ?? 往期推薦 : ??前面比較重要的 基礎(chǔ)內(nèi)容 : 【Python爬蟲開發(fā)基礎(chǔ)⑥】計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)(Web和HTTP) 【Python爬蟲開發(fā)基礎(chǔ)⑦】urllib庫(kù)的基本使用

    2024年02月12日
    瀏覽(16)
  • Python3 網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn) 第2版 (崔慶才) PDF 高清

    Python3 網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn) 第2版 (崔慶才) PDF 高清

    《Python 3 網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)(第二版)》是由崔慶才所著的一本關(guān)于使用 Python 進(jìn)行網(wǎng)絡(luò)爬蟲開發(fā)的書籍。 網(wǎng)絡(luò)爬蟲基礎(chǔ):介紹網(wǎng)絡(luò)爬蟲的基本概念、工作原理和常見的應(yīng)用場(chǎng)景。 HTTP 協(xié)議與 Scrapy 框架:解釋 HTTP 協(xié)議的基本知識(shí),以及如何使用 Scrapy 框架來構(gòu)建和管理爬蟲項(xiàng)

    2024年04月09日
    瀏覽(42)
  • Python爬蟲網(wǎng)易云音樂,Tkinter制作音樂播放器

    Python爬蟲網(wǎng)易云音樂,Tkinter制作音樂播放器

    目錄 一、效果展示 二、環(huán)境 三、實(shí)現(xiàn)過程 四、源碼 頁(yè)面的美化以及功能還有待升級(jí)~ 先來說一下已有功能吧: 可以在搜索框中通過歌曲或歌手名稱進(jìn)行搜索,效果和在網(wǎng)易云官網(wǎng)搜索一樣。 點(diǎn)擊開始下載,就會(huì)將搜索結(jié)果的第一條歌曲下載到指定文件夾 下載完畢后,會(huì)遍

    2024年02月04日
    瀏覽(19)
  • 【Python爬蟲開發(fā)實(shí)戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片

    【Python爬蟲開發(fā)實(shí)戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片

    個(gè)人主頁(yè) :為夢(mèng)而生~ 關(guān)注我一起學(xué)習(xí)吧! 專欄 :python網(wǎng)絡(luò)爬蟲從基礎(chǔ)到實(shí)戰(zhàn) 歡迎訂閱!后面的內(nèi)容會(huì)越來越有意思~ 往期推薦 : 【Python爬蟲開發(fā)基礎(chǔ)⑦】urllib庫(kù)的基本使用 【Python爬蟲開發(fā)基礎(chǔ)⑧】XPath庫(kù)及其基本用法 我們?cè)谥耙呀?jīng)有8篇文章講述基礎(chǔ)知識(shí)了,下面我們

    2024年02月11日
    瀏覽(168)
  • Python爬蟲 - 網(wǎng)易云音樂下載

    Python爬蟲 - 網(wǎng)易云音樂下載

    爬取網(wǎng)易云音樂實(shí)戰(zhàn),僅供學(xué)習(xí),不可商用,出現(xiàn)問題,概不負(fù)責(zé)! 分為爬取網(wǎng)易云歌單和排行榜單兩部分。 因?yàn)榫W(wǎng)頁(yè)中,只能顯示出歌單的前20首歌曲,所以僅支持下載前20首歌曲(非VIP音樂) 具體過程: 1.通過抓包,獲取到請(qǐng)求頭 2.發(fā)送請(qǐng)求,獲取到網(wǎng)頁(yè)源代碼,通過

    2024年01月19日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包