|
|
|
@ -1,100 +0,0 @@
|
|
|
|
|
import selenium
|
|
|
|
|
import time
|
|
|
|
|
import requests
|
|
|
|
|
from requests import utils
|
|
|
|
|
from selenium import webdriver
|
|
|
|
|
from selenium.webdriver.common.by import By
|
|
|
|
|
from selenium.webdriver.chrome.options import Options
|
|
|
|
|
|
|
|
|
|
# 创建Chrome浏览器的一个Options实例对象
|
|
|
|
|
chrome_options = Options()
|
|
|
|
|
|
|
|
|
|
# 设置chrome禁用图片的相关设置
|
|
|
|
|
prefs = {
|
|
|
|
|
'profile.default_content_setting_values': {
|
|
|
|
|
'images': 2, # 屏蔽图片
|
|
|
|
|
'notifications': 2, # 屏蔽消息推送
|
|
|
|
|
'stylesheet': 2, # 屏蔽css
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
chrome_options.add_experimental_option("prefs", prefs)
|
|
|
|
|
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) # 设置为开发者模式,避免被识别
|
|
|
|
|
# chrome_options.add_argument('--headless') # 设置无界面模式
|
|
|
|
|
driver = webdriver.Chrome(options=chrome_options)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# cookie转字典格式
|
|
|
|
|
def cookie_to_dic(cookie):
|
|
|
|
|
cookie_dic = {}
|
|
|
|
|
cookie = cookie.split(';')
|
|
|
|
|
for i in cookie:
|
|
|
|
|
if i == '':
|
|
|
|
|
continue
|
|
|
|
|
split_list = i.split('=', 1)
|
|
|
|
|
cookie_dic[split_list[0]] = split_list[1]
|
|
|
|
|
return cookie_dic
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# cookie处理 获取 vusession
|
|
|
|
|
def sign_in():
|
|
|
|
|
login_headers = {
|
|
|
|
|
'Referer': 'https://v.qq.com',
|
|
|
|
|
'Cookie': 'RK=YX0UEQuQc+; ptcz=d40f025b92495b40d3fc0d5056517dfeebbff8614231422b7d7af2b8f0e60d41; '
|
|
|
|
|
'pgv_pvid=7446353280; tvfe_boss_uuid=be8e9187cfa98741; video_guid=c01ade079830ba3a; '
|
|
|
|
|
'video_platform=2; _video_qq_login_time_init=1648646719; o_cookie=7162990; pac_uid=1_7162990; '
|
|
|
|
|
'pgv_info=ssid=s4323616200; _qpsvr_localtk=0.8345327357280963; ptui_loginuin=2302701417; '
|
|
|
|
|
'main_login=qq; vqq_access_token=7F7983B57D98C209C86B1783E1CF23F3; vqq_appid=101483052; '
|
|
|
|
|
'vqq_openid=422AC6FAE31853765F1390B1D76838AA; vqq_vuserid=301208119; '
|
|
|
|
|
'vqq_vusession=9HlXh7gQNyHlCEYmO6m6zA..; vqq_refresh_token=B97EB39D777C6ED019A96E45C8D5D94F; '
|
|
|
|
|
'vqq_next_refresh_time=6600; vqq_login_time_init=1649577646; login_time_init=2022-4-10 16:0:45; '
|
|
|
|
|
'login_time_last=2022-4-10 16:0:46' # 这里把cookie替换成自己的cookie,别把引号删了!!
|
|
|
|
|
}
|
|
|
|
|
login = requests.get('https://access.video.qq.com/user/auth_refresh?vappid=11059694&vsecret'
|
|
|
|
|
'=fdf61a6be0aad57132bc5cdf78ac30145b6cd2c1470b0cfe&type=qq&g_tk=&g_vstk=521269673&g_actk'
|
|
|
|
|
'=1377228769&callback=jQuery191078097906786654_1649577660499&_=1649577660500',
|
|
|
|
|
headers=login_headers) # 这里把auth_refres换成自己的,别把引号删了!!
|
|
|
|
|
cookie = requests.utils.dict_from_cookiejar(login.cookies)
|
|
|
|
|
sign_headers = "RK=YX0UEQuQc+; ptcz=d40f025b92495b40d3fc0d5056517dfeebbff8614231422b7d7af2b8f0e60d41; " \
|
|
|
|
|
"pgv_pvid=7446353280; tvfe_boss_uuid=be8e9187cfa98741; video_guid=c01ade079830ba3a; " \
|
|
|
|
|
"video_platform=2; _video_qq_login_time_init=1648646719; o_cookie=7162990; pac_uid=1_7162990; " \
|
|
|
|
|
"pgv_info=ssid=s4323616200; _qpsvr_localtk=0.8345327357280963; ptui_loginuin=2302701417; " \
|
|
|
|
|
"main_login=qq; vqq_access_token=7F7983B57D98C209C86B1783E1CF23F3; vqq_appid=101483052; " \
|
|
|
|
|
"vqq_openid=422AC6FAE31853765F1390B1D76838AA; vqq_vuserid=301208119; vqq_vusession= "
|
|
|
|
|
temp = cookie['vqq_vusession']
|
|
|
|
|
sign_headers = sign_headers + temp
|
|
|
|
|
x_cookie = cookie_to_dic(sign_headers)
|
|
|
|
|
return x_cookie
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def run_js():
|
|
|
|
|
js0 = 'document.getElementsByClassName("txp_menuitem")[1].click()' # 切换清晰度
|
|
|
|
|
js1 = 'return PLAYER._DownloadMonitor.context.dataset.title,' \
|
|
|
|
|
'PLAYER._DownloadMonitor.context.dataset.ckc?PLAYER._DownloadMonitor.context.dataset.currentVideoUrl:PLAYER' \
|
|
|
|
|
'._DownloadMonitor.context.dataset.currentVideoUrl.replace(/:.*qq.com/g,' \
|
|
|
|
|
'"://defaultts.tc.qq.com/defaultts.tc.qq.com") ' # 获取m3u8地址
|
|
|
|
|
from_url = 'https://v.qq.com/x/cover/mzc00200iw8qib0.html'
|
|
|
|
|
driver.get(from_url)
|
|
|
|
|
cookie = sign_in()
|
|
|
|
|
|
|
|
|
|
print("cookie:", cookie)
|
|
|
|
|
# set up cookie 将cookie导入网页
|
|
|
|
|
for i in cookie:
|
|
|
|
|
name = i.strip(" ").strip("\n")
|
|
|
|
|
values = cookie[i].strip(" ").strip("\n")
|
|
|
|
|
print(name, ":", values)
|
|
|
|
|
driver.add_cookie({"name": name, "value": values})
|
|
|
|
|
time.sleep(3)
|
|
|
|
|
print(driver.get_cookies())
|
|
|
|
|
driver.refresh()
|
|
|
|
|
driver.execute_script(js0)
|
|
|
|
|
time.sleep(3)
|
|
|
|
|
print(driver.execute_script(js1))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
run_js()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# flask/fastapi
|
|
|
|
|
# 参考一些开源项目
|
|
|
|
|
# 写一些解析各大网站视频/音乐的接口
|