NFLmusic库文件
This commit is contained in:
56
nflmusic/get_url.py
Normal file
56
nflmusic/get_url.py
Normal file
@ -0,0 +1,56 @@
|
||||
import requests
|
||||
import re
|
||||
import json
|
||||
def re_domain(url):
|
||||
pattern_domain = r"https?://([^/]+)"
|
||||
match = re.search(pattern_domain, url)
|
||||
if match:
|
||||
domain = match.group(1)
|
||||
return domain
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def get_url(url):
|
||||
domain = re_domain(url)
|
||||
headers={
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0"
|
||||
}
|
||||
response = requests.get(url, headers=headers)
|
||||
iframe_pattern = re.compile(r'<iframe\s+class="ifr2"\s+name="\d+"\s+src="([^"]+)"\s+frameborder="0"\s+scrolling="no"></iframe>')
|
||||
matches = iframe_pattern.findall(response.text)
|
||||
response2 = requests.get(f"https://{domain}{matches[1]}", headers=headers)
|
||||
pattern = r"'sign'\s*:\s*'([^']+)'"
|
||||
sign = re.search(pattern, response2.text).group(1)
|
||||
pattern2 = r"url\s*:\s*'([^']+)'"
|
||||
url2 = re.search(pattern2, response2.text).group(1)
|
||||
data = {
|
||||
'action': 'downprocess',
|
||||
'signs': '?ctdf',
|
||||
'sign': sign,
|
||||
'websign': '',
|
||||
'websignkey': 'bL27',
|
||||
'ves': 1
|
||||
}
|
||||
headers = {
|
||||
"Referer": matches[1],
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0"
|
||||
}
|
||||
response3 = requests.post(f"https://{domain}{url2}", headers=headers, data=data)
|
||||
data = json.loads(response3.text)
|
||||
full_url = data['dom'] + "/file/" + data['url']
|
||||
headers = {
|
||||
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
||||
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
||||
"sec-ch-ua": "\"Chromium\";v=\"122\", \"Not(A:Brand\";v=\"24\", \"Microsoft Edge\";v=\"122\"",
|
||||
"sec-ch-ua-mobile": "?0",
|
||||
"sec-ch-ua-platform": "\"Windows\"",
|
||||
"sec-fetch-dest": "document",
|
||||
"sec-fetch-mode": "navigate",
|
||||
"sec-fetch-site": "none",
|
||||
"sec-fetch-user": "?1",
|
||||
"upgrade-insecure-requests": "1",
|
||||
"cookie": "down_ip=1"
|
||||
}
|
||||
response4 = requests.get(full_url, headers=headers, allow_redirects=False)
|
||||
return response4.headers['Location']
|
Reference in New Issue
Block a user