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

Python爬蟲實戰(zhàn)案例——音樂爬蟲,收費歌曲依舊可用

這篇具有很好參考價值的文章主要介紹了Python爬蟲實戰(zhàn)案例——音樂爬蟲,收費歌曲依舊可用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

因為現(xiàn)在眾多音樂平臺下載歌曲都要收費了,導致我沒有車載音樂聽了。于是便自學爬蟲做了這個簡易的音樂爬蟲。不是那些大平臺的音樂爬蟲,是一個不知名的小音樂網(wǎng)站的爬蟲。下面開始正題:

首先,便是找不是那幾家大互聯(lián)網(wǎng)公司的音樂網(wǎng)站,在我的不懈努力之下終于找到了一家歌曲比較齊全的野雞音樂網(wǎng)站(請允許我這么說)。雖說是野雞,但是該有的熱門歌手的新歌和熱門歌曲都有,麻雀雖小,五臟俱全。

接著,便要對網(wǎng)站進行抓包,并對網(wǎng)頁鏈接尋找規(guī)律,當然,這個小網(wǎng)站的網(wǎng)頁鏈接的規(guī)律也是非常之簡單。如下圖所示:

爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

不難發(fā)現(xiàn),它的網(wǎng)頁網(wǎng)址的規(guī)律,前面那一串不知名網(wǎng)址,加上你要搜索的的歌手的名字,然后再加上.html就可以了。于是乎,就解決了代碼中url的問題。代碼如下:

import requests
name = input()
url = 'http://www.2t58.com/so/{}/1.html'.format(name)
response = requests.get(url = url)

上面代碼目前是完全可行,雖然我并沒有加入heards等相關(guān)的反爬參數(shù),但是網(wǎng)站在這目前為止也沒有進行反爬。

接下來,我們隨便點擊幾首歌曲:

爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

?文章來源地址http://www.zghlxwxcb.cn/news/detail-776218.html

爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

?爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

?

因為喜歡周杰倫的朋友特別的多啊,我就搜索了周杰倫,并點了他的幾首歌曲,我們可以發(fā)現(xiàn),網(wǎng)頁欄的網(wǎng)頁地址變得毫無規(guī)律了,是一串我們看不懂的英文字母加上.html。而我們想要下載歌曲又必須進入到這個給頁面,所以我們必須找到它網(wǎng)頁地址的規(guī)律,或者說我們必須找到,那一串毫無規(guī)律的英文字母可以從哪個數(shù)據(jù)包中得到。接下來,我便進行了數(shù)據(jù)抓包并分析。?

爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

很容易發(fā)現(xiàn),在每個a標簽的href中的最后一個字段就是我們要的那一串毫無規(guī)律的英文字母,所以我們要做的就是查看它的url,然后通過requests的模塊發(fā)送請求將這個網(wǎng)頁給請求下來,經(jīng)過我的嘗試,該網(wǎng)站在這里進行了反爬,如果不加入heards則會請求不到數(shù)據(jù),大家注意一下。然后,就是用正則表達式將我們需要的英文字母給匹配保留下來,代碼如下:

ex = '<div class="name"><a href="/song/(.*?).html" target="_mp3">.*?</a></div>'
musicIndex = re.findall(ex, response.text, re.S)

接下來,就是回去歌曲的下載鏈接,將它以二進制形式保存就可以了。隨便點擊一首歌曲,對歌曲詳細頁面進行抓包。

爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

數(shù)據(jù)包是非常多的,我們可以根據(jù)數(shù)據(jù)包的類型來有選擇型的查看,音頻和視頻等很顯然就是media類型的數(shù)據(jù)包。很顯然這就是我們想要的音樂鏈接,我們將它在一個單獨的網(wǎng)頁欄中搜索可以得到?jīng)]有限制可以直接下載的完整的音樂。但是我們要的是批量下載,一首一首的下載效率太慢了。所以,我們還要繼續(xù)尋找有沒有一個數(shù)據(jù)包,它的響應就包含了這首歌曲的鏈接。我的做法是將最后一個.mp3的名稱在數(shù)據(jù)包搜索欄中搜索對應關(guān)鍵字,很幸運,我找到了。

?

?爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

爬蟲付費音樂違法嗎,python爬蟲實戰(zhàn)案例,爬蟲,python,windows,pycharm,beautifulsoup

?接下來就非常簡單了,我們已經(jīng)找到了每個要搜索的歌手的詳情網(wǎng)頁的規(guī)律(固定網(wǎng)址+歌手名字+.html),我們有獲取了每一首歌曲的詳情頁面(那一段沒有規(guī)律的英文字母),最后又在歌曲詳情頁面找到了包含歌曲鏈接的數(shù)據(jù)包,所以接下來我們要做的就是,將歌曲鏈接用二進制保存下來,學過爬蟲的同學應該注意到了,上面這個數(shù)據(jù)包的響應數(shù)json數(shù)據(jù),返回的是一個字典形式的數(shù)據(jù),我們可以根據(jù)鍵值對來取出我們需要的歌曲的下載鏈接。首先就是將這個給數(shù)據(jù)包根據(jù)對應的url請求下來,注意在請求頭中查看相應url的參數(shù),代碼如下:

data = {'id': i,'type': 'music'}

url2 = 'http://www.2t58.com/js/play.php'

response2 = requests.post(url = url2, headers = headers, data = data)

json_data = response2.json()

musicList = json_data['url']

我們將歌曲的下載鏈接保存在列表musicList中,最后就是將歌曲保存,代碼如下:

musicResponse = requests.get(url = musicList)

filename = json_data['title'] + '.mp3'

with open('E:/music/' + filename, 'wb') as f:
    f.write(musicResponse.content)
    print(filename + '下載成功!')

大家改一下路徑就可以正常運行了。

?

完整代碼:

import requests
import re

# 張學友:aHNj
# 陳奕迅:eG4
# 林憶蓮:d2t3eA



name = input()
url = 'http://www.2t58.com/so/{}/1.html'.format(name)
response = requests.get(url = url)
ex = '<div class="name"><a href="/song/(.*?).html" target="_mp3">.*?</a></div>'
musicIndex = re.findall(ex, response.text, re.S)
smallmusicList = []
for j in range(0, 5):
    smallmusicList.append(musicIndex[j])
print(smallmusicList)



headers ={
'Accept':'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.9',
'Connection':'keep-alive',
'Content-Length':'26',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie':'Hm_lvt_b8f2e33447143b75e7e4463e224d6b7f=1690974946; Hm_lpvt_b8f2e33447143b75e7e4463e224d6b7f=1690976158',
'Host':'www.2t58.com',
'Origin':'http://www.2t58.com',
'Referer':'http://www.2t58.com/song/bWhzc3hud25u.html',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
'X-Requested-With':'XMLHttpRequest'
}


for i in musicIndex:
    data = {'id': i,'type': 'music'}

    url2 = 'http://www.2t58.com/js/play.php'

    response2 = requests.post(url = url2, headers = headers, data = data)

    json_data = response2.json()

    musicList = json_data['url']

    musicResponse = requests.get(url = musicList)

    filename = json_data['title'] + '.mp3'

    with open('E:/music/' + filename, 'wb') as f:
        f.write(musicResponse.content)
        print(filename + '下載成功!')


可能是因為網(wǎng)站不夠完善,有些歌手的詳情網(wǎng)頁并不是歌手名+.html,而是一些無規(guī)律的英文字母,我暫時發(fā)現(xiàn)的已經(jīng)放在上面,如果要下載該歌手的歌曲,就輸入相應的英文字母。

?

僅供學習使用,請不要用于違法犯罪。

?

?

?

?

?

到了這里,關(guān)于Python爬蟲實戰(zhàn)案例——音樂爬蟲,收費歌曲依舊可用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 利用python獲取網(wǎng)易云音樂的歌曲,原理+代碼!簡單易懂

    利用python獲取網(wǎng)易云音樂的歌曲,原理+代碼!簡單易懂

    關(guān)于爬取網(wǎng)易云音樂的歌曲,有一些思路。代碼在末尾哦 一般來說,爬取音樂,采取正則表達式或者直接調(diào)用API,這里采用API 首先導入需要用到的庫 from lxml import etree import requests import json from concurrent.futures import ThreadPoolExecutor 然后我們要知道,要爬取音樂就要先獲取到API接口

    2024年02月03日
    瀏覽(22)
  • 【Python 爬蟲腳本】Python爬取歌曲

    【Python 爬蟲腳本】Python爬取歌曲

    目標:爬取酷狗音樂 右鍵--檢查 進入網(wǎng)絡,查看所有請求,事先先清空歷史數(shù)據(jù) 點擊刷新,重新進入頁面 找到index請求,在預覽中可以看到? play_backup_url:\\\"https://webfs.tx.kugou.com/202308251554/97c6fef48119300dd2a238ee8025c521/v2/409ebc56ea4ba76e58d8c89af8d03b6a/KGTX/CLTX001/409ebc56ea4ba76e58d8c89af8d03b6a.

    2024年01月17日
    瀏覽(23)
  • python爬蟲實戰(zhàn)案例——某站視頻爬蟲

    python爬蟲實戰(zhàn)案例——某站視頻爬蟲

    今天突然發(fā)現(xiàn),某站的視頻在電腦上是不能下載的。于是乎,就打算在電腦上爬取一下某站的視頻。讓大家在電腦上也能看, 某站的視頻是音頻和視頻分開的,我在網(wǎng)上搜了一下,要用到一個叫ffmpeg的音視頻合成的庫,網(wǎng)上教程很多,大家搜一下就可以找到了,我就不在此贅

    2024年02月10日
    瀏覽(27)
  • Python爬蟲實戰(zhàn)案例——第二例

    Python爬蟲實戰(zhàn)案例——第二例

    某某美劇劇集下載(從搜索片名開始) 本篇文章主要是為大家提供某些電影網(wǎng)站的較常規(guī)的下載電影的分析思路與代碼思路(通過爬蟲下載電影),我們會從搜索某部影片的開始直到成功下載某一部電影。 地址:aHR0cHM6Ly93d3cuOTltZWlqdXR0LmNvbS9pbmRleC5odG1s 先來分析頁面 打開開發(fā)

    2024年02月11日
    瀏覽(18)
  • Python爬蟲實戰(zhàn)案例——第一例

    Python爬蟲實戰(zhàn)案例——第一例

    X盧小說登錄(包括驗證碼處理) 地址:aHR0cHM6Ly91LmZhbG9vLmNvbS9yZWdpc3QvbG9naW4uYXNweA== 打開頁面直接進行分析 任意輸入用戶名密碼及驗證碼之后可以看到抓到的包中傳輸?shù)臄?shù)據(jù)明顯需要的是 txtPwd 進行加密分析。按 ctrl+shift+f 進行搜索。 定位來到源代碼中斷點進行調(diào)試。 然后直接跟

    2024年02月12日
    瀏覽(22)
  • 〖Python網(wǎng)絡爬蟲實戰(zhàn)?〗- Selenium案例實戰(zhàn)(三)

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

    2024年02月07日
    瀏覽(51)
  • 〖Python網(wǎng)絡爬蟲實戰(zhàn)?〗- Selenium案例實戰(zhàn)(一)

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

    2024年02月14日
    瀏覽(18)
  • 〖Python網(wǎng)絡爬蟲實戰(zhàn)?〗- Ajax數(shù)據(jù)爬取之Ajax 案例實戰(zhàn)

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

    2024年02月06日
    瀏覽(59)
  • Python爬蟲逆向?qū)崙?zhàn)案例(五)——YRX競賽題第五題

    Python爬蟲逆向?qū)崙?zhàn)案例(五)——YRX競賽題第五題

    題目:抓取全部5頁直播間熱度,計算前 5 名直播間熱度的 加和 地址:https://match.yuanrenxue.cn/match/5 cookie中m值分析 首先打開開發(fā)者工具進行抓包分析,從抓到的包來看,參數(shù)傳遞了查詢參數(shù) m 與 f ,同時頁面中給了提示說cookie僅有50秒的有效期,所以逆向參數(shù)可以直接通過co

    2024年02月11日
    瀏覽(32)
  • 〖Python網(wǎng)絡爬蟲實戰(zhàn)?〗- Ajax數(shù)據(jù)爬取之Ajax 分析案例

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

    2024年02月07日
    瀏覽(55)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包