parent
5c68ee17d7
commit
44827051b0
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (Spider)" project-jdk-type="Python SDK" />
|
||||
</project>
|
@ -0,0 +1,50 @@
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
from lxml import etree
|
||||
from bs4 import BeautifulSoup
|
||||
import re
|
||||
import json
|
||||
import os
|
||||
'''
|
||||
爬热搜榜
|
||||
'''
|
||||
|
||||
|
||||
|
||||
isExists = os.path.exists("./music")
|
||||
if not isExists:
|
||||
os.makedirs("./music")
|
||||
|
||||
url = "https://www.kugou.com/yy/html/rank.html"
|
||||
headers = {
|
||||
"User-agent":
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.169.400 QQBrowser/11.0.5130.400",
|
||||
"Cookie":
|
||||
"kg_mid=14e57fa8f8bd5163efe72e9847a80e64; kg_dfid=0jICDR1Z9i6c3Xwh3n02F2uD;"
|
||||
" Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1668051000,1668243927; kg_dfid_collect=d41d8cd98f00b204e9800998ecf8427e; kg_mid_temp=14e57fa8f8bd5163efe72e9847a80e64; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1668245258",
|
||||
}
|
||||
req = requests.get(url=url,headers=headers)
|
||||
soup = BeautifulSoup(req.content,"html.parser")
|
||||
text = re.compile(r"global.features =(.*?);$",re.MULTILINE|re.DOTALL)
|
||||
script = soup.find('script',text=text)
|
||||
list_text = script.text[(script.text.find('Hash')-2):-5]
|
||||
m = 0
|
||||
list = []
|
||||
while(m<len(list_text)):
|
||||
n = list_text[m:].find('}')
|
||||
dict = eval(list_text[m:m+n+1])
|
||||
# print(list_text[m:m+n+1])
|
||||
list.append(dict)
|
||||
m = m+n+2
|
||||
for x in list:
|
||||
url = 'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&hash='
|
||||
url = url + x["Hash"]+"&album_id="+str(x['album_id'])
|
||||
req = requests.get(url=url, headers=headers)
|
||||
req_json = json.loads(req.text)
|
||||
song_url = req_json['data'].get('play_url')
|
||||
req1 = requests.get(url=song_url)
|
||||
with open(f'./music/{req_json["data"].get("audio_name")}.mp3', 'wb') as f:
|
||||
f.write(req1.content)
|
||||
f.close()
|
||||
req1.close()
|
||||
req.close()
|
Loading…
Reference in new issue