恭祝大家春節愉快!
在介紹爬取音訊資料案例的課程中,我們大概講解了爬蟲應該知道和應該會一些知識。
在2021年春節長假期間,宅家或外出旅行,使用Python程式,能爬取自己喜歡的歌曲,聽自己喜歡的歌曲,伴隨自己和親人渡過這個愉快的節日,夫復何求!
不多說了,開幹!
首先,說說實現爬取歌曲的思路:"""思路步驟:網址-請求&接收-解析和篩選-儲存檔案1. 爬取資料網站(url&headers) 爬取哪個網站的歌曲?url = 'https://www.xxx.com/'; 爬取網站歌曲的偽裝?headers = {'User-Agent': ' '}2. 請求及接收:傳送和接收網站響應的資料(response物件和html文件) 匯入第三方庫 requests3. 解析和篩選:對html文件進行篩選,篩選出自己需要的資料(歌曲列表和音樂資料) 匯入第三方庫 4. 儲存:對於得到的資料進行儲存"""
爬取資料網站:安裝第三方庫:pip install requests, pip install lxml及匯入庫
import requests # 匯入請求模組,向網站傳送請求及接收資料,自目標網址裡獲取網頁資料from lxml import etree # 匯入lxml.etree模組,解析篩選網站響應的資料import time
headers = { 'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Mobile Safari/537.36'}url = 'https://music.xxx.com/artist?id=1156'
# 2. 向網站傳送請求獲取資料
response = requests.get(url)#print(response)
圖1:執行輸出(response [200])代表請求成功
# 3.自網頁資料篩選出需要的資料
html = etree.HTML(response.text) # 解析獲取的網頁資料music_idlist = html.xpath('//a[contains(@href,"/song?")]') # 獲取音樂資料的標籤path = "D:/Download/music/" # 將歌曲下載到指定路徑# 拆分單個音樂的標籤for data in music_idlist: href = data.xpath('./@href')[0] # 篩選出含歌曲的資訊 music_id = href.split("=")[1] # 自歌曲資訊中篩選出歌曲id music_name = data.xpath('./text()')[0] # 獲取歌曲名字 # 下載介面 base_url = 'https://music.xxx.com/song/url?id=' download_url = base_url + music_id # 拼接下載歌曲的完整url musicdata = requests.get(download_url, headers=headers).content # 請求歌曲的資料
# 4. 儲存音樂檔案:將獲得的音樂資料儲存為音樂檔案
with open(path+music_name+".mp3",'wb') as file: # 建立一個空白的mp3檔案# with open('./163song/%s.mp3' % music_name, 'wb') as file: file.write(musicdata) # 將請求得到的歌曲資料寫入空白的mp3檔案 time.sleep(0.3)print('<%s>下載成功' % music_name)
最後,執行爬蟲程式,爬取自己喜歡歌曲!
日期:2021年02月10日
最新評論