python使用beautifulsoup4爬取酷狗音樂程式碼例項
阿新 • • 發佈:2020-01-09
這篇文章主要介紹了python使用beautifulsoup4爬取酷狗音樂程式碼例項,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
小編經常在網上聽一些音樂但是有一些網站好多音樂都是付費下載的正好我會點爬蟲技術,空閒時間寫了一份,截止4月底沒有問題的,會下載到當前目錄,只要按照bs4庫就好,
安裝方法:pip install beautifulsoup4
完整程式碼如下:雙擊就能直接執行
from bs4 import BeautifulSoup import requests import re headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/72.0.3626.109 Safari/537.36' } url='https://songsearch.kugou.com/song_search_v2?&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1555124510574' #想要爬取別的網頁直接修改這個json資料地址就行 r=requests.get(url,headers=headers) soup=BeautifulSoup(r.text,'lxml') title_list=soup.select('.pc_temp_songlist ul li') hash=re.findall(r',"FileHash":"(.*?)"',r.text) hash1=re.findall(r',"FileName":"(.*?)"',r.text) #直接用正則匹配隱藏的資料 print(hash) print(hash1) q=0 for url in hash: url_a=f'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery1910212680783679835_1555073815772&hash={url}&album_id=18784389' #這個URL不用修改的 c=requests.get(url_a,headers=headers) a=c.text[40:-3] b=re.findall('"play_url":"(.*)","authors":',a)[0] b1=re.sub(r"\\",'',b) f = requests.get(b1) with open(hash1[q]+'.mp3','wb')as d: d.write(f.content) print(hash1[q]) q+=1
爬取酷狗的唯一難點就是hash值的獲取找了一個多小時才找到,比網易雲好點就是自己不用寫一個雜湊值,酷狗是自己就存在的能找到,網易雲是需要函式生成的。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。