执行 Ruff 安全自动修复
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import random
|
||||
import hashlib
|
||||
import random
|
||||
from typing import Any
|
||||
|
||||
from Crypto.Cipher import AES, PKCS1_v1_5
|
||||
from Crypto.PublicKey import RSA
|
||||
from Crypto.Cipher import PKCS1_v1_5, AES
|
||||
|
||||
|
||||
# 随机产生4个字符组成的字符串
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import requests
|
||||
import cv2
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
import requests
|
||||
from loguru import logger
|
||||
from PIL import Image
|
||||
|
||||
REQUEST_TIMEOUT = (3.05, 12)
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import time
|
||||
import requests
|
||||
import json
|
||||
import re
|
||||
from typing import Mapping, Optional, Tuple
|
||||
import time
|
||||
from collections.abc import Mapping
|
||||
|
||||
import requests
|
||||
from loguru import logger
|
||||
|
||||
REQUEST_TIMEOUT = (10, 30)
|
||||
@@ -12,9 +13,9 @@ PASSPORT_REFERER = "https://passport.douyu.com/"
|
||||
def _get(
|
||||
url: str,
|
||||
*,
|
||||
params: Optional[dict] = None,
|
||||
headers: Optional[dict] = None,
|
||||
proxies: Optional[Mapping[str, str]] = None,
|
||||
params: dict | None = None,
|
||||
headers: dict | None = None,
|
||||
proxies: Mapping[str, str] | None = None,
|
||||
) -> requests.Response:
|
||||
"""发送极验 GET 请求,确保使用同一个代理出口。"""
|
||||
return requests.get(
|
||||
@@ -55,7 +56,7 @@ def _parse_json_response(response: requests.Response, source: str) -> dict:
|
||||
raise ValueError(f"{source} 返回的不是有效 JSON: {preview}") from exc
|
||||
|
||||
|
||||
def get_challenge_gt_bak() -> Tuple[str, str]:
|
||||
def get_challenge_gt_bak() -> tuple[str, str]:
|
||||
headers = {
|
||||
"accept": "application/json, text/javascript, */*; q=0.01",
|
||||
"accept-language": "zh-CN,zh;q=0.9",
|
||||
@@ -85,7 +86,7 @@ def get_challenge_gt_bak() -> Tuple[str, str]:
|
||||
return data["gt"], data["challenge"]
|
||||
|
||||
|
||||
def get_challenge_gt() -> Tuple[str, str]:
|
||||
def get_challenge_gt() -> tuple[str, str]:
|
||||
headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
|
||||
"Accept": "application/json, text/javascript, */*; q=0.01",
|
||||
@@ -116,7 +117,7 @@ def get_challenge_gt() -> Tuple[str, str]:
|
||||
raise ValueError(f"斗鱼登录接口返回中缺少极验参数: {preview}") from exc
|
||||
|
||||
|
||||
def get_js_address(gt: str, proxies: Optional[Mapping[str, str]] = None) -> dict:
|
||||
def get_js_address(gt: str, proxies: Mapping[str, str] | None = None) -> dict:
|
||||
headers = {
|
||||
"accept": "*/*",
|
||||
"accept-language": "zh-CN,zh;q=0.9",
|
||||
@@ -149,8 +150,8 @@ def get_c_s(
|
||||
gt: str,
|
||||
challenge: str,
|
||||
w: str,
|
||||
proxies: Optional[Mapping[str, str]] = None,
|
||||
) -> Tuple[list[int], str]:
|
||||
proxies: Mapping[str, str] | None = None,
|
||||
) -> tuple[list[int], str]:
|
||||
headers = {
|
||||
"accept": "*/*",
|
||||
"accept-language": "zh-CN,zh;q=0.9",
|
||||
@@ -184,7 +185,7 @@ def req_fullpage_validate(
|
||||
gt: str,
|
||||
challenge: str,
|
||||
w: str,
|
||||
proxies: Optional[Mapping[str, str]] = None,
|
||||
proxies: Mapping[str, str] | None = None,
|
||||
) -> dict:
|
||||
"""HAR 中的 fullpage 最终校验,成功后直接返回 validate。"""
|
||||
headers = {
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import time
|
||||
import random
|
||||
from typing import Optional
|
||||
import time
|
||||
|
||||
|
||||
def generate_fake_performance_timing(base_time: Optional[int] = None) -> dict[str, int]:
|
||||
def generate_fake_performance_timing(base_time: int | None = None) -> dict[str, int]:
|
||||
"""
|
||||
生成伪造的浏览器性能时间戳数据
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import random
|
||||
import math
|
||||
from typing import Any, Optional
|
||||
import random
|
||||
from typing import Any
|
||||
|
||||
|
||||
# 生成类人的鼠标轨迹
|
||||
@@ -91,7 +91,7 @@ def generate_realistic_trajectory(
|
||||
|
||||
# 处理原始轨迹数组
|
||||
def process_mouse_trajectory(
|
||||
events: list[Any], max_records: Optional[int] = None
|
||||
events: list[Any], max_records: int | None = None
|
||||
) -> dict[str, Any]:
|
||||
"""
|
||||
处理鼠标/触摸轨迹数据,将绝对坐标转换为相对坐标和时间差
|
||||
|
||||
@@ -1,35 +1,37 @@
|
||||
import time
|
||||
import random
|
||||
import json
|
||||
import random
|
||||
import time
|
||||
|
||||
from loguru import logger
|
||||
from core.geetest.common.trajectory import (
|
||||
generate_realistic_trajectory,
|
||||
process_mouse_trajectory,
|
||||
compress_trajectory,
|
||||
TrajectoryEncoder,
|
||||
H,
|
||||
)
|
||||
|
||||
from core.geetest.common.crypto import (
|
||||
four_random_chart,
|
||||
RSA_jiami_r,
|
||||
AES_O,
|
||||
geetest_base64_encode,
|
||||
RSA_jiami_r,
|
||||
encrypt_string,
|
||||
four_random_chart,
|
||||
geetest_base64_encode,
|
||||
simple_md5,
|
||||
)
|
||||
from core.geetest.common.imaging import download_picture
|
||||
from core.geetest.common.network import (
|
||||
get_c_s,
|
||||
get_challenge_gt,
|
||||
get_js_address,
|
||||
get_c_s,
|
||||
req_slide,
|
||||
get_picture,
|
||||
req_end,
|
||||
req_slide,
|
||||
)
|
||||
from core.geetest.common.performance import (
|
||||
generate_fake_performance_timing,
|
||||
get_slide_track,
|
||||
)
|
||||
from core.geetest.common.trajectory import (
|
||||
H,
|
||||
TrajectoryEncoder,
|
||||
compress_trajectory,
|
||||
generate_realistic_trajectory,
|
||||
process_mouse_trajectory,
|
||||
)
|
||||
|
||||
|
||||
def _generate_seed() -> str:
|
||||
|
||||
Reference in New Issue
Block a user