dr_py/zhengban/DouYu.py
2023-04-23 21:04:12 +08:00

47 lines
1.4 KiB
Python

import execjs
import requests
import re
import time
class DouYu:
def __init__(self, room_id):
self.room_id = room_id
self.int_time = int(time.time())
self.did = "3966acse00dd10qer895bdca00031601"
def get_ub98484234(self):
res = requests.get(f"https://www.douyu.com/{self.room_id}").text
ub98484234 = re.findall("(function ub98484234.*?})var", res)[0]
var = re.findall("var\sv\s=\s(.*?)[.]slice", ub98484234)[0]
var1 = re.findall(f"(var {var}=.*?);", res)[0]
return f"var CryptoJS = require('crypto-js');{var1};{ub98484234}"
def get_sign(self):
js = execjs.compile(self.get_ub98484234())
res = js.call("ub98484234", self.room_id, self.did, self.int_time)
return res.split("sign=")[-1]
def get_params(self):
return {
'v': f'2201{time.strftime("%Y%m%d", time.localtime())}',
'did': self.did,
'tt': self.int_time,
'sign': self.get_sign(),
'cdn': "tct-h5",
'rate': '0',
'ver': 'Douyu_221041305',
'iar': '0',
'ive': '1',
'hevc': '0',
'fa': '1',
}
def start(self):
res = requests.post(f"https://www.douyu.com/lapi/live/getH5Play/{self.room_id}", data=self.get_params()).json()
print(res)
if __name__ == '__main__':
DouYu().start()