File size: 5,591 Bytes
79bbd99 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
import atexit
import subprocess
from DrissionPage._configs.chromium_options import ChromiumOptions
from DrissionPage import Chromium
from DrissionPage._pages.web_page import WebPage
from urllib.parse import urlparse, parse_qs
from mitmproxy import http
from mitmproxy.tools.main import mitmdump
import os
import httpx
import json
try:
import time
except:
pass
def get_info():
# 获取当前代码运行的目录
current_directory = os.getcwd()
# 定义相对路径
relative_file_path = "2.html"
# 构建绝对路径
absolute_file_path = os.path.join(current_directory, relative_file_path)
print(absolute_file_path)
# 定义代理服务器地址
proxy_server = "http://127.0.0.1:12346"
co = ChromiumOptions().set_paths(browser_path=r"microsoft-edge")
co.incognito(on_off=True) # 无痕隐身模式打开的话。不会记住你的网站账号密码
co.headless(on_off=True)
co.set_local_port("12369")
# co.auto_port(on_off=True)
co.set_proxy(proxy_server)
# co.headless(on_off=True) # 或者使用 co.set_argument('--headless=new')
co.set_argument("--disable-gpu") # 禁用GPU加速
co.set_argument('--no-sandbox') # 禁用沙箱提高速度
co.set_argument('--disable-dev-shm-usage')
co.set_argument('--ignore-certificate-errors')
# co.set_argument('2>/dev/null')
co.set_user_agent(
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTM, like Gecko) chrome/124.0.0.8 safari/537.36')
try:
browser2 = Chromium(chromium_options=co)
time.sleep(2)
browser2.get(absolute_file_path, retry=3, interval=2, timeout=15)
return browser2
except Exception as e:
print(f"打开主页失败,请检查网络连接,{e}")
return None
print(f"启动成功...")
def open_browser():
# 获取当前代码运行的目录
current_directory = os.getcwd()
# 定义相对路径
relative_file_path = "2.html"
# 构建绝对路径
absolute_file_path = os.path.join(current_directory, relative_file_path)
print(absolute_file_path)
# 定义代理服务器地址
proxy_server = "http://127.0.0.1:12346"
# 定义命令和路径
command = [
r"microsoft-edge",
# "--new-window",
"--headless",
"--no-sandbox",
"--disable-gpu",
"--remote-debugging-port=9222",
"--disable-dev-shm-usage",
"--ignore-certificate-errors",
"2>/dev/null",
f"--proxy-server={proxy_server}",
f"file:///{absolute_file_path}"
]
# 启动 Microsoft Edge 浏览器并打开本地文件
try:
process = subprocess.Popen(command)
except Exception as e:
# print("Failed to start browser:", e)
process = None
return process
class ListenComment:
def __init__(self):
pass
# 定义一个函数,用于处理每一个响应
def request(self, flow: http.HTTPFlow) -> None:
if 'speech.platform.bing.com' in flow.request.pretty_url:
try:
flow.kill()
except Exception as e:
print(e)
# 解析 URL
url = flow.request.pretty_url
parsed_url = urlparse(url)
# 获取当前的UTC时间戳
utc_time = time.time()
# 将UTC时间戳转换为北京时间(东8区)的时间戳
beijing_time = utc_time + 8 * 3600 # 加上8小时的时间差
# 将北京时间的时间戳转换为结构化时间
beijing_struct_time = time.localtime(beijing_time)
t = time.strftime('%Y-%m-%d %H:%M:%S', beijing_struct_time)
# 获取查询参数
query_params = parse_qs(parsed_url.query)
try:
ConnectionId = query_params['ConnectionId'][0]
# return
except KeyError:
pass
# 打印查询参数
print(t, ' ', url)
# print(query_params)
# 获取Sec-MS-GEC和Sec-MS-GEC-Version
try:
Sec_MS_GEC = query_params['Sec-MS-GEC'][0]
Sec_MS_GEC_Version = query_params['Sec-MS-GEC-Version'][0]
print(f"{t} Sec-MS-GEC: {Sec_MS_GEC}\nSec-MS-GEC-Version: {Sec_MS_GEC_Version}")
data = {
"Sec-MS-GEC": Sec_MS_GEC,
"Sec-MS-GEC-Version": Sec_MS_GEC_Version,
"last_update": int(time.time()),
"last_update_format(UTC +8)": t
}
body = {"key": "edge",
"value": json.dumps(data), # 将字典转换为 JSON 字符串
}
url = 'https://edge-sec.myaitool.top/lsjafadslhhi'
with httpx.Client() as client:
response = client.post(url, json=body)
print(response.text)
return data
except Exception as e:
print(f'cuowu: {e}')
pass
# 遍历查询参数
# for key, value in query_params.items():
# if key == 'Sec-MS-GEC':
# print(f"{key}: {value}")
# print(f"Query parameters for {url}: {query_params}")
addons = [ListenComment()]
if __name__ == '__main__':
# set_proxy()
# atexit.register(close_proxy) '--verbose',
# browser = open_browser()
b = get_info()
# atexit.register(b.quit)
mitmdump(['-s', __file__, '-p 12346', '-q', ]) |