From 915dc7682e7550e99d70b8d07e98e90db4d19e90 Mon Sep 17 00:00:00 2001 From: wbt5 Date: Sun, 9 Aug 2020 11:06:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=BA=A2=E4=BA=BA=E7=9B=B4?= =?UTF-8?q?=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hongle.py | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/hongle.py b/hongle.py index 20b9310..ab27b72 100644 --- a/hongle.py +++ b/hongle.py @@ -1,26 +1,57 @@ # 红人直播:https://www.hongle.tv/ +# 该平台需登陆,下面代码中已集成一个账号的登陆方式; +# 如登陆信息过期,可用自己的账号登陆后,查找浏览器Local Storage中的hrtk字段,替换代码中的accesstoken from urllib.parse import urlencode +from urllib.parse import unquote import requests import time import hashlib +import json def hongle(rid): + # 模拟登陆 + with requests.Session() as s: + pass + + tt = int(time.time() * 1000) + url = 'https://service.hongle.tv/v2/userw/login?_st1={}'.format(tt) + data = { + '_st1': tt, + 'geetest_challenge': '7f4f6fd6257799c0bcac1f38c21c042dl0', + 'geetest_seccode': 'd1163915f4cfd6c998014c4ca8899c9d|jordan', + 'geetest_validate': 'd1163915f4cfd6c998014c4ca8899c9d', + 'name': '16530801176', + 'password': 'QTXz9/Sp40BbMHwVtcb7AQ==', + } + + data1 = urlencode(data) + 'yuj1ah5o' + _ajaxdata1 = hashlib.md5(data1.encode('utf-8')).hexdigest() + data['_ajaxData1'] = _ajaxdata1 + del data['_st1'] + data = json.dumps(data, separators=(',', ':')) + headers = {'Content-Type': 'application/x-www-form-urlencoded'} + res = s.post(url, data=data, headers=headers).json() + if res['status']['statuscode'] == '0': + sessionid = res['data']['sessionid'] + else: + raise Exception('登陆信息过期') + url = 'https://service.hongle.tv/v2/roomw/media' - accesstoken = 'YeOucg9SmlbeeicDSN9k0efa4JaecMNbQd7eTQDNQRRmqUHnA%2Bwq4g%3D%3D' + accesstoken = sessionid params = { - '_st1': int(time.time() * 1000), + '_st1': tt, 'accessToken': accesstoken, 'of': 1, 'showid': rid, - 'tku': 44623062, + 'tku': 43112608, } data = urlencode(params) + 'yuj1ah5o' _ajaxData1 = hashlib.md5(data.encode('utf-8')).hexdigest() params['_ajaxData1'] = _ajaxData1 - params['accessToken'] = 'YeOucg9SmlbeeicDSN9k0efa4JaecMNbQd7eTQDNQRRmqUHnA+wq4g==' - with requests.Session() as s: - res = s.get(url, params=params) + params['accessToken'] = unquote(accesstoken) + + res = s.get(url, params=params) if res.status_code == 200: res = res.json() statuscode = res['status']['statuscode']