优化cookie提取器,移除Playwright依赖,重新设计界面和功能
This commit is contained in:
+43
@@ -0,0 +1,43 @@
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# Virtual Environment
|
||||
venv/
|
||||
env/
|
||||
ENV/
|
||||
.venv
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
log/
|
||||
|
||||
# Data files (optional - uncomment if you don't want to commit these)
|
||||
# cookie_data.json
|
||||
# cookies.json
|
||||
# config.json
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -546,54 +546,3 @@ class CookieManager:
|
||||
return filtered_cookies
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 初始化日志系统
|
||||
from applogger import setup_logging
|
||||
setup_logging()
|
||||
|
||||
# 测试代码
|
||||
manager = CookieManager("cookies.json")
|
||||
|
||||
# 测试1: 保存所有 cookie
|
||||
test_cookies = [
|
||||
{"name": "test", "value": "123", "domain": "example.com", "path": "/"},
|
||||
{"name": "session", "value": "abc123", "domain": "example.com", "path": "/", "httpOnly": True},
|
||||
{"name": "user", "value": "testuser", "domain": "example.org", "path": "/"}
|
||||
]
|
||||
manager.save_all_cookies("测试用户", test_cookies)
|
||||
logger.info("测试1: 保存所有 cookie 完成")
|
||||
|
||||
# 测试2: 获取所有 cookie
|
||||
all_cookies = manager.get_all_cookies("测试用户")
|
||||
logger.info(f"测试2: 获取到 {len(all_cookies)} 个 cookie")
|
||||
|
||||
# 测试3: 添加单个 cookie
|
||||
new_cookie = {"name": "token", "value": "xyz789", "domain": "example.com", "path": "/", "secure": True}
|
||||
manager.add_cookie("测试用户", new_cookie)
|
||||
logger.info("测试3: 添加单个 cookie 完成")
|
||||
|
||||
# 测试4: 获取更新后的所有 cookie
|
||||
updated_cookies = manager.get_all_cookies("测试用户")
|
||||
logger.info(f"测试4: 获取到 {len(updated_cookies)} 个 cookie")
|
||||
|
||||
# 测试5: 获取指定域名的 cookie
|
||||
example_cookies = manager.get_cookies_for_domain("测试用户", "example.com")
|
||||
logger.info(f"测试5: 获取到 {len(example_cookies)} 个 example.com 的 cookie")
|
||||
|
||||
# 测试6: 移除指定 cookie
|
||||
manager.remove_cookie("测试用户", "test", "example.com")
|
||||
logger.info("测试6: 移除指定 cookie 完成")
|
||||
|
||||
# 测试7: 检查移除后的 cookie
|
||||
final_cookies = manager.get_all_cookies("测试用户")
|
||||
logger.info(f"测试7: 移除后剩余 {len(final_cookies)} 个 cookie")
|
||||
|
||||
# 测试8: 清空所有 cookie
|
||||
manager.clear_cookies("测试用户")
|
||||
logger.info("测试8: 清空所有 cookie 完成")
|
||||
|
||||
# 测试9: 检查清空后的 cookie
|
||||
empty_cookies = manager.get_all_cookies("测试用户")
|
||||
logger.info(f"测试9: 清空后剩余 {len(empty_cookies)} 个 cookie")
|
||||
|
||||
logger.info("所有测试完成!")
|
||||
+179
@@ -0,0 +1,179 @@
|
||||
import tkinter as tk
|
||||
from tkinter import ttk, messagebox
|
||||
from DrissionPage import ChromiumPage, ChromiumOptions
|
||||
import json
|
||||
import threading
|
||||
import time
|
||||
|
||||
class BrowserTool:
|
||||
def __init__(self, root):
|
||||
self.root = root
|
||||
self.root.title('浏览器Cookie管理工具')
|
||||
self.root.geometry('500x200')
|
||||
self.root.resizable(False, False)
|
||||
|
||||
self.page = None
|
||||
self.cookie_file = 'd:\\test\\openUrl\\cookies.json'
|
||||
|
||||
self.setup_ui()
|
||||
|
||||
def setup_ui(self):
|
||||
frame = ttk.Frame(self.root, padding=20)
|
||||
frame.pack(fill=tk.BOTH, expand=True)
|
||||
|
||||
ttk.Label(frame, text='网址:').grid(row=0, column=0, sticky=tk.W, pady=5)
|
||||
self.url_entry = ttk.Entry(frame, width=60)
|
||||
self.url_entry.grid(row=0, column=1, columnspan=3, pady=5, sticky=tk.W)
|
||||
self.url_entry.insert(0, 'https://yunlu.sinopec.com/AddressBook/AddressBookCheck')
|
||||
|
||||
btn_frame = ttk.Frame(frame)
|
||||
btn_frame.grid(row=1, column=0, columnspan=4, pady=20)
|
||||
|
||||
self.open_btn = ttk.Button(btn_frame, text='打开', width=15, command=self.open_browser)
|
||||
self.open_btn.pack(side=tk.LEFT, padx=10)
|
||||
|
||||
self.save_btn = ttk.Button(btn_frame, text='保存', width=15, command=self.save_cookies)
|
||||
self.save_btn.pack(side=tk.LEFT, padx=10)
|
||||
|
||||
self.import_btn = ttk.Button(btn_frame, text='导入', width=15, command=self.import_cookies)
|
||||
self.import_btn.pack(side=tk.LEFT, padx=10)
|
||||
|
||||
self.status_var = tk.StringVar(value='就绪')
|
||||
ttk.Label(frame, textvariable=self.status_var).grid(row=2, column=0, columnspan=4, pady=10)
|
||||
|
||||
def log(self, msg):
|
||||
self.status_var.set(msg)
|
||||
self.root.update()
|
||||
|
||||
def init_browser(self):
|
||||
co = ChromiumOptions()
|
||||
co.set_browser_path(r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe')
|
||||
self.page = ChromiumPage(addr_or_opts=co)
|
||||
|
||||
def wait_page_loaded(self, timeout=30):
|
||||
if self.page:
|
||||
self.page.wait.doc_loaded(timeout=timeout)
|
||||
self.page.ele('tag:body', timeout=timeout)
|
||||
|
||||
def open_browser(self):
|
||||
def run():
|
||||
try:
|
||||
self.log('正在启动浏览器...')
|
||||
self.init_browser()
|
||||
|
||||
url = self.url_entry.get().strip()
|
||||
if not url:
|
||||
messagebox.showerror('错误', '请输入网址')
|
||||
return
|
||||
|
||||
self.log(f'正在打开: {url}')
|
||||
self.page.get(url)
|
||||
self.wait_page_loaded()
|
||||
self.log('页面加载完成')
|
||||
|
||||
except Exception as e:
|
||||
self.log(f'错误: {str(e)}')
|
||||
messagebox.showerror('错误', str(e))
|
||||
|
||||
threading.Thread(target=run, daemon=True).start()
|
||||
|
||||
def save_cookies(self):
|
||||
def run():
|
||||
try:
|
||||
if not self.page:
|
||||
messagebox.showwarning('提示', '请先打开浏览器')
|
||||
return
|
||||
|
||||
self.log('正在保存Cookies...')
|
||||
cookies = self.page.cookies()
|
||||
|
||||
with open(self.cookie_file, 'w', encoding='utf-8') as f:
|
||||
json.dump(cookies, f, ensure_ascii=False, indent=2)
|
||||
|
||||
self.log(f'Cookies已保存到 {self.cookie_file}')
|
||||
|
||||
self.log('正在关闭浏览器...')
|
||||
self.page.quit()
|
||||
self.page = None
|
||||
self.log('浏览器已关闭')
|
||||
|
||||
messagebox.showinfo('成功', 'Cookies保存成功,浏览器已关闭')
|
||||
|
||||
except Exception as e:
|
||||
self.log(f'错误: {str(e)}')
|
||||
messagebox.showerror('错误', str(e))
|
||||
|
||||
threading.Thread(target=run, daemon=True).start()
|
||||
|
||||
def import_cookies(self):
|
||||
def run():
|
||||
try:
|
||||
import os
|
||||
if not os.path.exists(self.cookie_file):
|
||||
messagebox.showwarning('提示', 'Cookie文件不存在,请先保存Cookies')
|
||||
return
|
||||
|
||||
self.log('正在启动浏览器...')
|
||||
self.init_browser()
|
||||
|
||||
self.log('正在加载Cookies...')
|
||||
with open(self.cookie_file, 'r', encoding='utf-8') as f:
|
||||
cookies = json.load(f)
|
||||
|
||||
url = self.url_entry.get().strip()
|
||||
if not url:
|
||||
messagebox.showerror('错误', '请输入网址')
|
||||
return
|
||||
|
||||
from urllib.parse import urlparse
|
||||
parsed = urlparse(url)
|
||||
domain = parsed.netloc
|
||||
|
||||
self.page.get('about:blank')
|
||||
|
||||
for cookie in cookies:
|
||||
cookie_dict = {
|
||||
'name': cookie.get('name'),
|
||||
'value': cookie.get('value'),
|
||||
'domain': cookie.get('domain', domain),
|
||||
'path': cookie.get('path', '/')
|
||||
}
|
||||
try:
|
||||
self.page.set.cookies(cookie_dict)
|
||||
except Exception as ce:
|
||||
self.log(f'设置Cookie失败: {cookie.get("name")} - {str(ce)}')
|
||||
|
||||
self.log(f'已导入 {len(cookies)} 个Cookie')
|
||||
|
||||
self.log(f'正在打开: {url}')
|
||||
self.page.get(url)
|
||||
self.wait_page_loaded()
|
||||
|
||||
self.log('刷新页面验证登录状态...')
|
||||
for i in range(3):
|
||||
self.page.refresh()
|
||||
self.wait_page_loaded()
|
||||
time.sleep(1)
|
||||
self.log(f'刷新第 {i+1} 次...')
|
||||
|
||||
self.log('页面加载完成')
|
||||
|
||||
except Exception as e:
|
||||
self.log(f'错误: {str(e)}')
|
||||
messagebox.showerror('错误', str(e))
|
||||
|
||||
threading.Thread(target=run, daemon=True).start()
|
||||
|
||||
def on_closing(self):
|
||||
if self.page:
|
||||
try:
|
||||
self.page.quit()
|
||||
except:
|
||||
pass
|
||||
self.root.destroy()
|
||||
|
||||
if __name__ == '__main__':
|
||||
root = tk.Tk()
|
||||
app = BrowserTool(root)
|
||||
root.protocol('WM_DELETE_WINDOW', app.on_closing)
|
||||
root.mainloop()
|
||||
@@ -255,25 +255,4 @@ class CookieCloud:
|
||||
return result
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
cc = CookieCloud(
|
||||
api_url="https://movie-pilot.org/cookiecloud",
|
||||
uuid="hu6n2vcUmzpu7mqUN2rVCg",
|
||||
password="jtDM5dV9AyqXkZdQVeA9f6"
|
||||
)
|
||||
|
||||
# 测试获取所有数据
|
||||
all_data = cc.get_all_data()
|
||||
logger.info(f"所有数据: {json.dumps(all_data, indent=2, ensure_ascii=False)[:500]}...")
|
||||
|
||||
# 测试获取 cookies
|
||||
cookies = cc.get_cookies()
|
||||
|
||||
# 测试获取指定域名的 cookies
|
||||
lmkbi_cookies = cc.get_cookies_for_domain('lmkbi.95155.com')
|
||||
|
||||
# 测试获取 local storage
|
||||
local_storage = cc.get_local_storage()
|
||||
|
||||
# 测试获取指定域名的 local storage
|
||||
lmkbi_local_storage = cc.get_local_storage_for_domain('lmkbi.95155.com')
|
||||
|
||||
+157
-8
@@ -1,11 +1,160 @@
|
||||
{
|
||||
"cookies": {
|
||||
"userType": "2",
|
||||
"edentoken": "13548569666",
|
||||
"LMKBIUSS": "eyJhY2NvdW50SWQiOjIzMzk0OTQ3NTAwMjA0OSwicGhvbmUiOiIxMzU0ODU2OTY2NiIsInRpbWVzdGFtcCI6MTc3MjUyNjkxNTQzMiwidG9rZW4iOiIyYTM5OTk2Zi0xY2MyLTQ2MTktOTcwYS01NzdmOWUxZGMyODQifQ==",
|
||||
"user": "13548569666"
|
||||
"cookies": [
|
||||
{
|
||||
"name": "JSESSIONID",
|
||||
"value": "DD8A9B4F6E06DF35AE1EC2339DF0FA36",
|
||||
"domain": "10.190.1.205"
|
||||
},
|
||||
"localStorage": {},
|
||||
"url": "https://lmkbi.95155.com/bi-system/#/carUnpetrifiedComAll",
|
||||
"timestamp": 1772525977.9257276
|
||||
{
|
||||
"name": "__rubyUX",
|
||||
"value": "false",
|
||||
"domain": "ntp.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "pglt-edgeChromium-dhp",
|
||||
"value": "2083",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "pglt-edgeChromium-ntp",
|
||||
"value": "2083",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "_C_Auth",
|
||||
"value": "",
|
||||
"domain": "ntp.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "MicrosoftApplicationsTelemetryDeviceId",
|
||||
"value": "da0bf04e-2115-4952-a012-fc29b4954ec0",
|
||||
"domain": "ntp.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "USRLOC",
|
||||
"value": "",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "MUID",
|
||||
"value": "15CB8BCF863F643B03449CDE8778658F",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "v1",
|
||||
"value": "ExJ_flr=b!>Rb_?o_sb/",
|
||||
"domain": ".mediav.com"
|
||||
},
|
||||
{
|
||||
"name": "MUID",
|
||||
"value": "15CB8BCF863F643B03449CDE8778658F",
|
||||
"domain": ".bing.com"
|
||||
},
|
||||
{
|
||||
"name": "MR",
|
||||
"value": "0",
|
||||
"domain": ".c.bing.com"
|
||||
},
|
||||
{
|
||||
"name": "SRM_B",
|
||||
"value": "15CB8BCF863F643B03449CDE8778658F",
|
||||
"domain": ".c.bing.com"
|
||||
},
|
||||
{
|
||||
"name": "MR",
|
||||
"value": "0",
|
||||
"domain": ".c.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "MUIDB",
|
||||
"value": "15CB8BCF863F643B03449CDE8778658F",
|
||||
"domain": "ntp.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": ".ASPXANONYMOUS",
|
||||
"value": "21JPwTAtPyn84bHA6aNjbcWhPsVrLyiIZ-4mnJ6_dMtvLzgXbw3J9nyy0dxCZj0b8vOEHXZpgfYoPylWhp5s3AY2GwcwdYg9JI6VqZ6YK3uRkwMf0",
|
||||
"domain": "i3.sinopec.com"
|
||||
},
|
||||
{
|
||||
"name": "x",
|
||||
"value": "x",
|
||||
"domain": "auth.siam.sinopec.com"
|
||||
},
|
||||
{
|
||||
"name": "msnup",
|
||||
"value": "%7B%22cnex%22%3A%22no%22%7D",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "msaoptout",
|
||||
"value": "0",
|
||||
"domain": "ntp.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "OptanonAlertBoxClosed",
|
||||
"value": "2026-03-04T08:18:01.713Z",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "eupubconsent-v2",
|
||||
"value": "CQghjcAQghjcAAcABBZHBfFsAP_gAELgACiQK4tX_G__bXlr8X73aftkeY1f99h77sQxBhaJk-4FzJvW_JwX32E7NAz6tqYKmRIAu3TBAQNlHJDURVCgaIgVqSDMaEyUoTNKJ6BkiFMRY2dYCFxvm4tjeQCY5vr991d52B-t7dr83dzyy4hHv3a5_0S1WAAAAYCNDfv9bROb-9IO9_x8v4v4_F7pE2_eS1l_tWvp7D9-cts_9XW99_bbff9Pn_-uF_-_X_vf_H37v9oK5AACAAAARgkCAAAgAAAAABAAAAAQAAAAAQBgAAARBAEAAgAQGEgAEAAAAIAAAAAgSAAAAAJAAgAAAABQAAAIBAAAAwAIBgAAGAAACABACAAAAgEgYJgQQCBAABCYBAAgQgAAAACwECAABAgiACEQcAQAAAAAAAAEAAoAAEAgDAQkkBCxIIAuIJoAACAAAIIAChFJ2YAggDNlqrwZNoytMCwfMFzymAZAEQRk5JsQmsAoJA1AAQAAuACgAKgAcAA8ACCAGQAagA8ACIAEwAKoAbwA9AB-AEJAIYAiQBHACWAE0AK0AYYAywBsgDvgHsAfEA-wD9AIBARcBGACNAFBAKgAVcAuYBigDaAG4AOIAkQBOwChwFHgKRAWwAuQBd4DDQGSAMnAZcAzmBrAGsgNvAeOEAMAAOAHOAQcAn4CPQEigJWATaAsIBeQDEAGLQMhAyMBowDUwG0ANuAboA8oB8gD9wICAQMAgiOATgAIgAcAB4AFwAfgBoAHOAO4AgEBBwEIAJ-AVAAvQB0gEegJFASsAmIBMoCbQFIAKTAWoAvoBiADFgGQgMmAaMA00BqYDXgG0ANuAeUA-IB9sD9gP3AgeBBEdBAAAXABQAFQAOAAgABdADIANQAeABEACYAFWALgAugBiADeAHoAP0AhgCJAEsAJoAUYArQBhgDKAGiANkAd4A9oB9gH7ARYBGACggFXALEAXMAvIBigDaAG4AOIAdQBF4CRAEyAJ2AUOAo8BTQCxQFsALgAXIAu0Bd4DDQGPAMkAZOAyqBlgGXAM5AaqA1gBt4DxwH1gQBIAHAAEABoAHOAWIBB4CPQE2gKTAVKAvIBqYDbAG3APKAfEA_YCB4EGAINgQrAimBGkCN8EkQSSAqmBWkCtsFcQVyIQIwAFgAUABcAFUALgAYgA3gB6AEcAO8AigBKQCggFXALmAYoA2gB1IFNAU2AqwBYoC0QFwALkAZOAzkBqoDxwH9gQtAh6BIoCSAFSgKvkoD4ACAAFgAUAA4ADwAIgATAAqgBcADFAIYAiQBHACjAFaANkAd4A_ACrgGKAOoAi8BIgCjwFigLYAZOAywBnIDWAG3gQPJADQALgDuAIAAVABHoCRQErAJtAUmAxYB5QD9wIIlIFwAC4AKAAqABwAEEAMgA0AB4AEQAJgAVQAxAB-gEMARIAowBWgDKAGiANkAd8A-wD9AIsARgAoIBVwC5gF5AMUAbQA3ACLwEiAJ2AUOApoBYoC2AFwALkAXaAw0BkgDJwGXAM5gawBrIDbwHjlADYAFwBHADnAHcAQAAkQBYgDXgHbAP-Aj0BIoCYgE2gKQAU-AvIBfQDFgGTANTAa8A8oB8UD9gP3AgYBA8.f_wACFwAAAAA",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "MSFPC",
|
||||
"value": "GUID=139384d4545d4f4583ff3ef161faee39&HASH=1393&LV=202603&V=4&LU=1772612281994",
|
||||
"domain": "ntp.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "UID",
|
||||
"value": "1862498edfbe5a24e12c8d21772613043",
|
||||
"domain": ".scorecardresearch.com"
|
||||
},
|
||||
{
|
||||
"name": "XID",
|
||||
"value": "1862498edfbe5a24e12c8d21772613043",
|
||||
"domain": ".scorecardresearch.com"
|
||||
},
|
||||
{
|
||||
"name": "SM",
|
||||
"value": "C",
|
||||
"domain": ".c.msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "JSESSIONID",
|
||||
"value": "DD8A9B4F6E06DF35AE1EC2339DF0FA36",
|
||||
"domain": "10.190.1.205"
|
||||
},
|
||||
{
|
||||
"name": "language",
|
||||
"value": "zh-CN",
|
||||
"domain": "192.168.8.147"
|
||||
},
|
||||
{
|
||||
"name": "fnos-token",
|
||||
"value": "n4fYErf2p2lHSucAt8uYAo+M+JDy354smCjF98dHtJM=",
|
||||
"domain": "192.168.8.147"
|
||||
},
|
||||
{
|
||||
"name": "fnos-long-token",
|
||||
"value": "07MRUOgDAAC3g89pAAAAAMrPwB8hdcC8nqwi0bqBWfNDO0uPBM7fPQ==",
|
||||
"domain": "192.168.8.147"
|
||||
},
|
||||
{
|
||||
"name": "_C_ETH",
|
||||
"value": "1",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "_EDGE_S",
|
||||
"value": "\"SID=217608637BE1667B39501F717A966764\"",
|
||||
"domain": ".msn.cn"
|
||||
},
|
||||
{
|
||||
"name": "OptanonConsent",
|
||||
"value": "isGpcEnabled=0&datestamp=Wed+Mar+04+2026+17%3A09%3A17+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202501.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=3599d387-f02a-409c-910d-0a6caea03c05&interactionCount=1&isAnonUser=1&landingPath=NotLandingPage&groups=C0001%3A1%2CC0002%3A1%2CC0004%3A1%2CC0008%3A1%2CV2STACK42%3A1&AwaitingReconsent=false&intType=1&geolocation=%3B",
|
||||
"domain": ".msn.cn"
|
||||
}
|
||||
],
|
||||
"url": "http://192.168.8.147:5666/login"
|
||||
}
|
||||
+89
-121
@@ -1,69 +1,62 @@
|
||||
"""Cookie和LocalStorage提取器 - 使用DrissionPage库"""
|
||||
"""Cookie提取器 - 使用DrissionPage库"""
|
||||
import tkinter as tk
|
||||
from tkinter import ttk, messagebox
|
||||
import json
|
||||
import os
|
||||
import logging
|
||||
from DrissionPage import Chromium, ChromiumOptions
|
||||
from applogger import setup_logging, get_logger
|
||||
|
||||
# 初始化日志
|
||||
setup_logging()
|
||||
logger = get_logger(__name__)
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('cookie_extractor.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class CookieExtractorApp:
|
||||
"""Cookie和LocalStorage提取器应用"""
|
||||
"""Cookie提取器应用"""
|
||||
|
||||
def __init__(self, root):
|
||||
"""
|
||||
初始化应用
|
||||
|
||||
Args:
|
||||
root: 根窗口
|
||||
"""
|
||||
self.root = root
|
||||
self.root.title("Cookie和LocalStorage提取器")
|
||||
self.root.geometry("600x300")
|
||||
self.root.title("Cookie提取器")
|
||||
self.root.geometry("600x250")
|
||||
self.root.resizable(True, True)
|
||||
|
||||
# 浏览器实例
|
||||
self.browser = None
|
||||
self.tab = None
|
||||
|
||||
# 创建界面
|
||||
self._create_widgets()
|
||||
|
||||
def _create_widgets(self):
|
||||
"""创建界面控件"""
|
||||
# 主框架
|
||||
main_frame = ttk.Frame(self.root, padding="20")
|
||||
main_frame.pack(fill=tk.BOTH, expand=True)
|
||||
|
||||
# 网址输入区域
|
||||
url_frame = ttk.LabelFrame(main_frame, text="网址输入", padding="10")
|
||||
url_frame.pack(fill=tk.X, pady=10)
|
||||
|
||||
ttk.Label(url_frame, text="网址:").pack(side=tk.LEFT, padx=5)
|
||||
self.url_var = tk.StringVar(value="https://")
|
||||
self.url_var = tk.StringVar(value="http://192.168.8.147:5666/login")
|
||||
self.url_entry = ttk.Entry(url_frame, textvariable=self.url_var, width=50)
|
||||
self.url_entry.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=5)
|
||||
|
||||
# 按钮区域
|
||||
button_frame = ttk.Frame(main_frame)
|
||||
button_frame.pack(fill=tk.X, pady=10)
|
||||
|
||||
self.open_button = ttk.Button(button_frame, text="打开", command=self.open_url, width=15)
|
||||
self.open_button = ttk.Button(button_frame, text="打开", command=self.open_website, width=15)
|
||||
self.open_button.pack(side=tk.LEFT, padx=5)
|
||||
|
||||
self.save_button = ttk.Button(button_frame, text="保存", command=self.save_data, width=15, state=tk.DISABLED)
|
||||
self.save_button = ttk.Button(button_frame, text="保存", command=self.save_cookies, width=15, state=tk.DISABLED)
|
||||
self.save_button.pack(side=tk.LEFT, padx=5)
|
||||
|
||||
self.restore_button = ttk.Button(button_frame, text="恢复", command=self.restore_data, width=15)
|
||||
self.restore_button.pack(side=tk.LEFT, padx=5)
|
||||
self.import_button = ttk.Button(button_frame, text="导入", command=self.import_cookies, width=15)
|
||||
self.import_button.pack(side=tk.LEFT, padx=5)
|
||||
|
||||
self.close_button = ttk.Button(button_frame, text="关闭", command=self.close_app, width=15)
|
||||
self.close_button.pack(side=tk.RIGHT, padx=5)
|
||||
|
||||
# 状态区域
|
||||
self.status_var = tk.StringVar(value="就绪")
|
||||
status_frame = ttk.Frame(main_frame)
|
||||
status_frame.pack(fill=tk.X, pady=10)
|
||||
@@ -71,8 +64,8 @@ class CookieExtractorApp:
|
||||
ttk.Label(status_frame, text="状态:").pack(side=tk.LEFT, padx=5)
|
||||
ttk.Label(status_frame, textvariable=self.status_var, foreground="blue").pack(side=tk.LEFT, padx=5)
|
||||
|
||||
def open_url(self):
|
||||
"""打开网址"""
|
||||
def open_website(self):
|
||||
"""打开指定网站"""
|
||||
url = self.url_var.get().strip()
|
||||
|
||||
if not url:
|
||||
@@ -84,13 +77,12 @@ class CookieExtractorApp:
|
||||
self.url_var.set(url)
|
||||
|
||||
try:
|
||||
if not self.browser or not self.tab:
|
||||
self._cleanup_browser()
|
||||
|
||||
self.status_var.set("正在打开浏览器...")
|
||||
self.root.update()
|
||||
|
||||
# 创建浏览器实例
|
||||
co = ChromiumOptions()
|
||||
# 设置Edge浏览器路径
|
||||
co.set_browser_path(r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe")
|
||||
co.set_argument('--no-sandbox')
|
||||
co.set_argument('--disable-dev-shm-usage')
|
||||
@@ -101,111 +93,93 @@ class CookieExtractorApp:
|
||||
self.status_var.set(f"正在访问: {url}")
|
||||
self.root.update()
|
||||
|
||||
# 在当前页面打开网址
|
||||
self.tab.get(url)
|
||||
|
||||
self.status_var.set("等待页面加载...")
|
||||
self.root.update()
|
||||
|
||||
self.tab.wait.load_start()
|
||||
self.tab.wait.doc_loaded()
|
||||
|
||||
self.status_var.set(f"已打开: {url}")
|
||||
self.save_button.config(state=tk.NORMAL)
|
||||
messagebox.showinfo("成功", f"已成功打开网址: {url}\n\n请在浏览器中完成操作后,点击'保存'按钮提取数据")
|
||||
messagebox.showinfo("成功", f"已成功打开网址: {url}\n\n请在浏览器中完成登录操作后,点击'保存'按钮")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"打开网址失败: {e}")
|
||||
messagebox.showerror("错误", f"打开网址失败: {str(e)}")
|
||||
logger.error(f"打开网站失败: {e}")
|
||||
messagebox.showerror("错误", f"打开网站失败: {str(e)}")
|
||||
self.status_var.set("就绪")
|
||||
self._cleanup_browser()
|
||||
|
||||
def save_data(self):
|
||||
"""保存cookie和localStorage数据"""
|
||||
def save_cookies(self):
|
||||
"""保存当前的cookie信息,并强制关闭浏览器"""
|
||||
if not self.browser or not self.tab:
|
||||
messagebox.showerror("错误", "请先打开网址")
|
||||
messagebox.showerror("错误", "请先打开网站")
|
||||
return
|
||||
|
||||
try:
|
||||
self.status_var.set("正在提取数据...")
|
||||
self.status_var.set("正在提取cookies...")
|
||||
self.root.update()
|
||||
|
||||
# 提取浏览器的cookies信息
|
||||
cookies = self.browser.cookies()
|
||||
logger.info(f"成功提取 {len(cookies)} 个 cookies")
|
||||
|
||||
# 提取localStorage数据
|
||||
localStorage = self._get_local_storage()
|
||||
|
||||
# 整合数据
|
||||
data = {
|
||||
"cookies": cookies,
|
||||
"localStorage": localStorage,
|
||||
"url": self.url_var.get(),
|
||||
"timestamp": os.path.getmtime(__file__)
|
||||
"url": self.url_var.get()
|
||||
}
|
||||
|
||||
# 保存到JSON文件
|
||||
output_file = "cookie_data.json"
|
||||
with open(output_file, 'w', encoding='utf-8') as f:
|
||||
json.dump(data, f, indent=2, ensure_ascii=False)
|
||||
|
||||
self.status_var.set(f"数据已保存到: {output_file}")
|
||||
messagebox.showinfo("成功", f"数据已成功保存到: {output_file}\n\n- Cookie数量: {len(cookies)}\n- LocalStorage项目数量: {len(localStorage)}")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"保存数据失败: {e}")
|
||||
messagebox.showerror("错误", f"保存数据失败: {str(e)}")
|
||||
self.status_var.set("就绪")
|
||||
|
||||
def _get_local_storage(self):
|
||||
"""获取localStorage数据"""
|
||||
try:
|
||||
# 使用JavaScript获取localStorage数据
|
||||
js_code = """
|
||||
var result = {};
|
||||
for (var i = 0; i < localStorage.length; i++) {
|
||||
var key = localStorage.key(i);
|
||||
result[key] = localStorage.getItem(key);
|
||||
}
|
||||
JSON.stringify(result);
|
||||
"""
|
||||
|
||||
result = self.tab.run_js(js_code)
|
||||
return json.loads(result) if result else {}
|
||||
except Exception as e:
|
||||
logger.error(f"获取localStorage失败: {e}")
|
||||
return {}
|
||||
|
||||
def restore_data(self):
|
||||
"""从cookie_data.json恢复数据"""
|
||||
try:
|
||||
self.status_var.set("正在恢复数据...")
|
||||
self.status_var.set("正在关闭浏览器...")
|
||||
self.root.update()
|
||||
|
||||
# 检查文件是否存在
|
||||
self._cleanup_browser()
|
||||
|
||||
self.status_var.set(f"数据已保存到: {output_file}")
|
||||
messagebox.showinfo("成功", f"已成功保存 {len(cookies)} 个cookie到: {output_file}\n\n浏览器已关闭")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"保存cookies失败: {e}")
|
||||
messagebox.showerror("错误", f"保存cookies失败: {str(e)}")
|
||||
self.status_var.set("就绪")
|
||||
self._cleanup_browser()
|
||||
|
||||
def import_cookies(self):
|
||||
"""打开浏览器,导入cookie信息,然后打开指定网站"""
|
||||
try:
|
||||
output_file = "cookie_data.json"
|
||||
if not os.path.exists(output_file):
|
||||
messagebox.showerror("错误", f"文件不存在: {output_file}")
|
||||
self.status_var.set("就绪")
|
||||
return
|
||||
|
||||
# 读取数据
|
||||
self.status_var.set("正在读取cookies...")
|
||||
self.root.update()
|
||||
|
||||
with open(output_file, 'r', encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# 提取数据
|
||||
url = data.get("url", "")
|
||||
cookies = data.get("cookies", [])
|
||||
localStorage = data.get("localStorage", {})
|
||||
|
||||
if not url:
|
||||
messagebox.showerror("错误", "文件中没有保存的网址")
|
||||
self.status_var.set("就绪")
|
||||
url = self.url_var.get().strip()
|
||||
|
||||
if not url:
|
||||
messagebox.showerror("错误", "没有有效的网址")
|
||||
return
|
||||
|
||||
# 关闭现有浏览器
|
||||
if not (url.startswith("http://") or url.startswith("https://")):
|
||||
url = "https://" + url
|
||||
|
||||
self._cleanup_browser()
|
||||
|
||||
self.status_var.set("正在打开浏览器...")
|
||||
self.root.update()
|
||||
|
||||
# 创建浏览器实例
|
||||
co = ChromiumOptions()
|
||||
# 设置Edge浏览器路径
|
||||
co.set_browser_path(r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe")
|
||||
co.set_argument('--no-sandbox')
|
||||
co.set_argument('--disable-dev-shm-usage')
|
||||
@@ -213,60 +187,56 @@ class CookieExtractorApp:
|
||||
self.browser = Chromium(co)
|
||||
self.tab = self.browser.new_tab()
|
||||
|
||||
# 访问网址(先访问一个空白页面,以便注入localStorage)
|
||||
self.status_var.set("正在准备注入环境...")
|
||||
self.status_var.set("正在准备环境...")
|
||||
self.root.update()
|
||||
self.tab.get("about:blank")
|
||||
|
||||
# 注入cookies到浏览器
|
||||
if cookies:
|
||||
self.status_var.set("正在注入cookies...")
|
||||
self.status_var.set("正在导入cookies...")
|
||||
self.root.update()
|
||||
try:
|
||||
self.browser.set.cookies(cookies)
|
||||
logger.info(f"成功注入 {len(cookies)} 个 cookies 到浏览器")
|
||||
except Exception as e:
|
||||
logger.error(f"注入cookies失败: {e}")
|
||||
|
||||
# 注入localStorage
|
||||
if localStorage:
|
||||
self.status_var.set("正在注入localStorage...")
|
||||
self.root.update()
|
||||
success_count = 0
|
||||
for cookie in cookies:
|
||||
try:
|
||||
# 使用更安全的方式注入localStorage
|
||||
for key, value in localStorage.items():
|
||||
# 转义单引号和双引号
|
||||
safe_value = value.replace("'", "\\'").replace('"', '\\"')
|
||||
js_code = f"localStorage.setItem('{key}', '{safe_value}');"
|
||||
self.tab.run_js(js_code)
|
||||
logger.info(f"成功注入 {len(localStorage)} 个 localStorage 项目")
|
||||
except Exception as e:
|
||||
logger.error(f"注入localStorage失败: {e}")
|
||||
if not cookie.get('name') or not cookie.get('value'):
|
||||
continue
|
||||
|
||||
cookie.setdefault('path', '/')
|
||||
cookie.setdefault('httpOnly', False)
|
||||
cookie.setdefault('secure', False)
|
||||
|
||||
self.browser.set.cookies([cookie])
|
||||
success_count += 1
|
||||
except Exception as e:
|
||||
logger.error(f"导入cookie失败: {cookie.get('name')} - {e}")
|
||||
|
||||
logger.info(f"成功导入 {success_count} 个 cookies")
|
||||
|
||||
# 访问目标网址
|
||||
self.status_var.set(f"正在访问: {url}")
|
||||
self.root.update()
|
||||
self.tab.get(url)
|
||||
|
||||
# 更新界面
|
||||
self.status_var.set("等待页面加载...")
|
||||
self.root.update()
|
||||
self.tab.wait.load_start()
|
||||
self.tab.wait.doc_loaded()
|
||||
|
||||
self.url_var.set(url)
|
||||
self.status_var.set(f"已恢复: {url}")
|
||||
self.status_var.set(f"已导入并打开: {url}")
|
||||
self.save_button.config(state=tk.NORMAL)
|
||||
messagebox.showinfo("成功", f"已成功恢复数据并打开网址: {url}\n\n- Cookie数量: {len(cookies)}\n- LocalStorage项目数量: {len(localStorage)}")
|
||||
messagebox.showinfo("成功", f"已成功导入 {success_count} 个cookie并打开网址: {url}")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"恢复数据失败: {e}")
|
||||
messagebox.showerror("错误", f"恢复数据失败: {str(e)}")
|
||||
logger.error(f"导入cookies失败: {e}")
|
||||
messagebox.showerror("错误", f"导入cookies失败: {str(e)}")
|
||||
self.status_var.set("就绪")
|
||||
self._cleanup_browser()
|
||||
|
||||
def close_app(self):
|
||||
"""关闭应用"""
|
||||
self._cleanup_browser()
|
||||
self.root.destroy()
|
||||
|
||||
def _cleanup_browser(self):
|
||||
"""清理浏览器资源"""
|
||||
if self.browser:
|
||||
try:
|
||||
self.browser.quit()
|
||||
@@ -279,11 +249,9 @@ class CookieExtractorApp:
|
||||
self.status_var.set("就绪")
|
||||
|
||||
def main():
|
||||
"""主函数"""
|
||||
root = tk.Tk()
|
||||
app = CookieExtractorApp(root)
|
||||
|
||||
# 处理窗口关闭事件
|
||||
def on_closing():
|
||||
app._cleanup_browser()
|
||||
root.destroy()
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8
-629
@@ -1,633 +1,12 @@
|
||||
[
|
||||
{
|
||||
"用户A": [
|
||||
"edentoken",
|
||||
"JSESSIONID",
|
||||
"LMKBIUSS",
|
||||
"userType",
|
||||
"user",
|
||||
{},
|
||||
"name": "language",
|
||||
"value": "zh-CN",
|
||||
"domain": "192.168.8.156"
|
||||
},
|
||||
{
|
||||
"_C_Auth": "",
|
||||
"ipqsd": "523111658516671170",
|
||||
"userId": "f8fbc0f5-e22a-4b74-a542-bd54a720888d",
|
||||
"Conversion": "EgwIABUAAAAAHQAAAAAYASCkgoXr7trx8XlIAWpcQ2owS0NRaUFpOXJKQmhDWUFSSXNBTHlQRHR0T2VoalVESXRfWkhKSjFQRnlDWWxYb0M1Rl9FU3RBTW5nbFVwZE9UeXNQbmVwMlpoLTNqMGFBbXJfRUFMd193Y0Jwkf3znryvkQOQAYrAvcTUFJgBAA",
|
||||
"q_c1": "49e8263c177d4ead85368e381cc53b61|1765248965000|1765248965000",
|
||||
".MSA.Auth.Nonce.CfDJ8HAK7eZCYw5BifHFeUHnkJEKw3EgsOs5AbSc2JnHTirOIqDhgJ2up5kymkGgmv4pUdQFrQ7YUTtYpBXuGFBsJiPF6Y4AowNSzsqKagfZGaSohxPUVk57RTTEG8w92E4Pab5KThib0WzJ9nOhn3pEy7s9RXS6qetHy9V1Uc5All_sNMg-whZE6GcQb5VmmP3fcUlDTpCqHNwrGSRS9HPho-QDHlCnc7AiNQgzDeS9EIyPi7RoJ09jto3zA-OHGH-g4BIBtOcRhaZnSIppMrHPJPw": "N",
|
||||
"rtk": "TKr-frr0SNeUB_QS8P3E9Zo88rIIK-IRTro0KKMDdyVBKRUuArGIohdtlQS70ebuYCppbfoyIeopTpMYaummBiySPlO1kcuuiLjPpCpcxpIJRf0pO2RcO2YcQOOjVo1I-KN_Krr0.iNb_qWZHQ069KLOgUbv_Mp_VZR77t5NwK5WK9G7waH2tqTsEZsKeiIDOxOGneOiqP01AoZNWOpqZvOJUo0zcAw",
|
||||
"rtk_p": "TrDIKMfbcN8k009evoiA0pITTKS_fKoAKQKS38GvjKf6J-IuTKS-IQRktQgpxYLTsTG3pAD1rWL-1of2Zpxo1no0z3wvfZt4W7rf.QbL0hnbKnnKgdg6_wPtMkZ3eX_Q8QDLOuydcIkGaSuOwV9mZ0GA97TknnNdpKyl4K30a1VifIQxU-3rX5M6qWK",
|
||||
"arms_uid": "a9f7ecf0-8c4b-4ac8-bbc4-243cb97ffb16",
|
||||
"MUID": "1DDDFDD892586F24108AEB4293A46E7A",
|
||||
"itk": "TKI-frr0SNeUB_QS8P3E9Zo88rIIK-IRTro0KKMDdyVBKRUuArGIohdtlQS70ebuYCppbfoyIeopTpMYaummBiySPlO1kcuuiLjPpCpcxpIJRf0pO2RcO2YcO7UIKMIpKy-cTlH6rZJkLxFSgpy0YtJyrNOyH8py3rHNiTGOycj_QNgyV3QJ-KN-K6oTTKS.YmX0RbI6_CAWB_v3NGq5GkFRaYwOqvmy8Q3VjseAMSD0SE_0p1HYszbDMEN3WvvznIa3nK6h0-aaXPJXus_5HK",
|
||||
"_uab_collina": "177190199995692404856444",
|
||||
"loginWay": "qcloud_wechat",
|
||||
"Hm_lvt_eabfdea4539c4e941394b0c5200f8cd3": "1770003716",
|
||||
"yyb_muid": "048D92FAA90262ED311E84BBA8B46303",
|
||||
"__rubyUX": "false",
|
||||
"pglt-edgeChromium-ntp": "41",
|
||||
"pglt-edgeChromium-dhp": "41",
|
||||
"suid": "Id0Kv/ERdxRGmuCzhI30Yg==",
|
||||
"__snaker__id": "EawmxniT7FCf1frf",
|
||||
"SESSIONID": "7bgBuZgiJLQU62XBl9pwOQIIdRsj2kNMuCqq3oj02S1",
|
||||
"JOID": "UlAdBk5r6elkbpCzaRyTtQ-1wD56QMrHR0i7kEdNwspKTbaYSs-sQQhjmL5kfQ-q7wzkjOvstQPUZf7d5vqjbuE=",
|
||||
"osd": "UFwXBEpp5eNmapK_Yx6XtwO_wjp4TMDFQ0q3mkVJwMZAT7KaRsWuRQpvkrxgfwOg7QjmgOHusQHYb_zZ5PapbOU=",
|
||||
"curr_auth_lg_set": "zh",
|
||||
"IsDeviceID": "43164",
|
||||
"License_ManageCode": "5bcf5a78-f569-11e7-b3e3-083571f3c87d",
|
||||
"Mac": "ff%3A0A%3ABE%3A14%3A9C%3A00",
|
||||
"__aegis_uid": "15657f0000015c36-b995def7eda2097c-6741",
|
||||
"pt2gguin": "o0007469504",
|
||||
"qm_logintype": "qq",
|
||||
"xm_pcache": "13102661032344000&V2@6666oe7RRKuia7PURhf4LAAA@0",
|
||||
"USRLOC": "HS=1&ELOC=LAT=28.238513946533203|LON=112.57054901123047|N=%E5%AE%81%E4%B9%A1%E5%B8%82%EF%BC%8C%E6%B9%96%E5%8D%97%E7%9C%81|ELT=4|&BID=MjYwMzAzMTI1MzMyX2VmODk1MjBhNmI2ODRjYzkxZWRlMDk3ZjNkYzM5YzMwOWM2NjQ2NmRkYmIxNWRhZTE5MTY4MWRlYjZiY2RjZDY=",
|
||||
"_EDGE_V": "1",
|
||||
"MR": "0",
|
||||
"ANONCHK": "0",
|
||||
"msaoptout": "0",
|
||||
"MUIDB": "048D92FAA90262ED311E84BBA8B46303",
|
||||
"wpsqing_autoLoginV1": "1",
|
||||
"_ku": "1",
|
||||
"cid": "0",
|
||||
"coa_id": "0",
|
||||
"cv": "oTOvI9IxEkG3ZzsrI9L0_P6hKcFdtaq3fGFmZ8xEQ6A_77c8bQIS8ACrVUgNHxt5FTnsAZm9.wpPASB-U_uB",
|
||||
"kso_sid": "TKS-f0fbcN8k009evoiA0poTTKS7fKoAKQKS38GvjKf6J-oPTAAWidk0IrbesWNoYXQFR7NFIQoUW6sshtOGpfi9nJNss3yV2Dbob1Y-T2KwY2kzN2kCNUf9v4FHTSrfWrIIKQ.l4UDNR70HIplqBz7IIEHR2b1JMOhiDbfyB5ekhRbRGacmDNm5VnDQpxUEAlbkg-wkBO5UkA7NSEptrZo-zZFhQ",
|
||||
"uid": "389761826",
|
||||
"wps_sid": "V02SWFZZptO8hD7jnJNZZey_T4dodcY00a93596500173b4b22",
|
||||
"kso-wx-quick-login": "511",
|
||||
"Hm_lvt_cb2fa0997df4ff8e739c666ee2487fd9": "1766039339",
|
||||
"_bl_uid": "g9mLym0C0Xb0ttkXbuvdhen5ep0L",
|
||||
"cf": "6007a7c1df9d0e79f49406411a0d02d2",
|
||||
"RK": "FQUMzzy6EZ",
|
||||
"ptcz": "0a654e447a09bb38354f0b7e245912a9e209e521ecc0ca40170b58e9ef85d616",
|
||||
"pac_uid": "0_X5kXAYtmhx20A",
|
||||
"omgid": "0_X5kXAYtmhx20A",
|
||||
"_qimei_uuid42": "19b130f171d1005d591b00d4fa2ee39a2bd89a01f3",
|
||||
"_qimei_fingerprint": "9c821162553742cb776db3593bc6e597",
|
||||
"_qimei_q36": "",
|
||||
"_qimei_h38": "fded1891591b00d4fa2ee39a02000009119b13",
|
||||
"pgv_pvid": "9971545984",
|
||||
"msnup": "%7B%22cnex%22%3A%22no%22%7D",
|
||||
"OptanonAlertBoxClosed": "2026-02-06T00:00:43.708Z",
|
||||
"eupubconsent-v2": "CQVwtgAQVwtgAAcABBZHBfFsAP_gAELgACiQK4tX_G__bXlr8X73aftkeY1f99h77sQxBhaJk-4FzJvW_JwX32E7NAz6tqYKmRIAu3TBAQNlHJDURVCgaIgVqSDMaEyUoTNKJ6BkiFMRY2dYCFxvm4tjeQCY5vr991d52B-t7dr83dzyy4hHv3a5_0S1WAAAAYCNDfv9bROb-9IO9_x8v4v4_F7pE2_eS1l_tWvp7D9-cts_9XW99_bbff9Pn_-uF_-_X_vf_H37v9oK5AACAAAARgkCAAAgAAAAABAAAAAQAAAAAQBgAAARBAEAAgAQGEgAEAAAAIAAAAAgSAAAAAJAAgAAAABQAAAIBAAAAwAIBgAAGAAACABACAAAAgEgYJgQQCBAABCYBAAgQgAAAACwECAABAgiACEQcAQAAAAAAAAEAAoAAEAgDAQkkBCxIIAuIJoAACAAAIIAChFJ2YAggDNlqrwZNoytMCwfMFzymAZAEQRk5JsQmsAoJA1AAQAAuACgAKgAcAA8ACCAGQAagA8ACIAEwAKoAbwA9AB-AEJAIYAiQBHACWAE0AK0AYYAywBsgDvgHsAfEA-wD9AIBARcBGACNAFBAKgAVcAuYBigDaAG4AOIAkQBOwChwFHgKRAWwAuQBd4DDQGSAMnAZcAzmBrAGsgNvAeOEAMAAOAHOAQcAn4CPQEigJWATaAsIBeQDEAGLQMhAyMBowDUwG0ANuAboA8oB8gD9wICAQMAgiOATgAIgAcAB4AFwAfgBoAHOAO4AgEBBwEIAJ-AVAAvQB0gEegJFASsAmIBMoCbQFIAKTAWoAvoBiADFgGQgMmAaMA00BqYDXgG0ANuAeUA-IB9sD9gP3AgeBBEdBAAAXABQAFQAOAAgABdADIANQAeABEACYAFWALgAugBiADeAHoAP0AhgCJAEsAJoAUYArQBhgDKAGiANkAd4A9oB9gH7ARYBGACggFXALEAXMAvIBigDaAG4AOIAdQBF4CRAEyAJ2AUOAo8BTQCxQFsALgAXIAu0Bd4DDQGPAMkAZOAyqBlgGXAM5AaqA1gBt4DxwH1gQBIAHAAEABoAHOAWIBB4CPQE2gKTAVKAvIBqYDbAG3APKAfEA_YCB4EGAINgQrAimBGkCN8EkQSSAqmBWkCtsFcQVyIQIwAFgAUABcAFUALgAYgA3gB6AEcAO8AigBKQCggFXALmAYoA2gB1IFNAU2AqwBYoC0QFwALkAZOAzkBqoDxwH9gQtAh6BIoCSAFSgKvkoD4ACAAFgAUAA4ADwAIgATAAqgBcADFAIYAiQBHACjAFaANkAd4A_ACrgGKAOoAi8BIgCjwFigLYAZOAywBnIDWAG3gQPJADQALgDuAIAAVABHoCRQErAJtAUmAxYB5QD9wIIlIFwAC4AKAAqABwAEEAMgA0AB4AEQAJgAVQAxAB-gEMARIAowBWgDKAGiANkAd8A-wD9AIsARgAoIBVwC5gF5AMUAbQA3ACLwEiAJ2AUOApoBYoC2AFwALkAXaAw0BkgDJwGXAM5gawBrIDbwHjlADYAFwBHADnAHcAQAAkQBYgDXgHbAP-Aj0BIoCYgE2gKQAU-AvIBfQDFgGTANTAa8A8oB8UD9gP3AgYBA8.f_wACFwAAAAA",
|
||||
"_EDGE_S": "SID=0E9A79052714638E1B996E1526C662EB",
|
||||
"OptanonConsent": "isGpcEnabled=0&datestamp=Fri+Feb+27+2026+16%3A54%3A20+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202601.1.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=5002a581-af26-409b-9ddd-18c6fa715312&interactionCount=1&isAnonUser=1&landingPath=NotLandingPage&AwaitingReconsent=false&groups=C0001%3A1%2CC0002%3A1%2CC0003%3A1%2CC0004%3A1&intType=1&crTime=1770336044684&geolocation=CN%3BHN",
|
||||
"MicrosoftApplicationsTelemetryDeviceId": "92b55e22-5935-460e-b130-7bed45666877",
|
||||
"MSFPC": "GUID=710734b33f8e42ce9ac931a839e775f0&HASH=7107&LV=202510&V=4&LU=1760318000333",
|
||||
"Serial_Num": "Y3NyZnxhOjI6e2k6MDtzOjIwOiJNVGMzTWpVeU5EY3pOaTQzT0RjeCI7aToxO047fQ%3A%3A",
|
||||
"user_locale": "zh-CN",
|
||||
"Hm_lvt_bcc7f8fe49b3eec09673ef49e4b33693": "1764053148",
|
||||
"Hm_lvt_a7fe33f2f4184e3601e2e00b1c588945": "1765442032",
|
||||
"Hm_lvt_c6fdddc87b51c079306b4a7874f12c44": "1765443136",
|
||||
"abymg_id": "1_BE0919B54C29C232EF7E4637C5054A3460FA1FCE713D774DC9EC260AC783EA08",
|
||||
"Hm_lvt_b4e4640430b8197fb9c1243e911d4245": "1769315064",
|
||||
"Hm_lvt_5670e4c405b3d8c6e7c800094e7d5106": "1772248941",
|
||||
"Hm_lvt_24f17767262929947cc3631f99bfd274": "1772248759,1772417392",
|
||||
"Hm_lpvt_24f17767262929947cc3631f99bfd274": "1772417392",
|
||||
"HMACCOUNT": "A5543FA0605C9B88",
|
||||
"csrf_token": "jiKzVo3FVCj611BL5700JLQfM6noVYDHXqDgwk0Cv0ZNsnj9PNEIWdHFj8Hno9IDX3gORHh7ZAZ4tDMvl1qJkQ",
|
||||
"gitee-session-n": "WGM4YS91UWpKTnVteUVPNXliR3gxcHQwWU5XY1JaZFVES1VPTlM0a3phSEU0SU8rUjVkejE0allFNzFYT2ZpVWkrS0g3YTJNcmxpdDJYRTRGOEl4OTlFdjgySERGMk9aOVFNdEtyd1lQUUwyUEVQOXZzaTFsRUdoOHZ0YVF0SlhEQi9vQWs1QTVOQnNlc2FyaW00UTB1d0pzRFd0dU93aWZ2OWxFRDFINzdERXM0RzlRdW9IdkRiM0x1b0MySDNILS0wc01jaDdYY2FINkZRc0VrWVpxNk93PT0%3D--58bbdae1c91004912640c84c963bd8ff39dd2979",
|
||||
"oschina_new_user": "false",
|
||||
"remote_way": "http",
|
||||
"theme": "dark",
|
||||
"Serve_State": "true",
|
||||
"BEC": "8ddb6c1710618f9098bae11a2ceedd43",
|
||||
"HMACCOUNT_BFESS": "A5543FA0605C9B88",
|
||||
"w": "\"9KoC]^E=a0MuUe!@nvo6\"",
|
||||
"SRCHD": "AF=ANNTA1",
|
||||
"SRCHUID": "V=2&GUID=BFB3670E909644318B9002E310A98D3C&dmnchg=1",
|
||||
"MUIDV": "NU=1",
|
||||
"_tarLang": "default=zh-Hans",
|
||||
"_TTSS_IN": "hist=WyJlbiIsImF1dG8tZGV0ZWN0Il0=&isADRU=0",
|
||||
"_TTSS_OUT": "hist=WyJ6aC1IYW5zIl0=",
|
||||
"_HPVN": "CS=eyJQbiI6eyJDbiI6MSwiU3QiOjAsIlFzIjowLCJQcm9kIjoiUCJ9LCJTYyI6eyJDbiI6MSwiU3QiOjAsIlFzIjowLCJQcm9kIjoiSCJ9LCJReiI6eyJDbiI6MSwiU3QiOjAsIlFzIjowLCJQcm9kIjoiVCJ9LCJBcCI6dHJ1ZSwiTXV0ZSI6dHJ1ZSwiTGFkIjoiMjAyNS0xMi0wM1QwMDowMDowMFoiLCJJb3RkIjowLCJHd2IiOjAsIlRucyI6MCwiRGZ0IjpudWxsLCJNdnMiOjAsIkZsdCI6MCwiSW1wIjo1LCJUb2JuIjowfQ==",
|
||||
"_Rwho": "u=d&ts=2026-03-02",
|
||||
"_SS": "PC=U531&SID=0E9A79052714638E1B996E1526C662EB&R=200&RB=0&GB=0&RG=200&RP=200",
|
||||
"_clck": "16q1hg%5E2%5Eg3y%5E0%5E2250",
|
||||
"SRCHHPGUSR": "SRCHLANG=zh-Hans&PV=10.0.0&BZA=0&PREFCOL=0&BRW=XW&BRH=M&CW=1912&CH=956&SCW=1897&SCH=2721&DPR=1.0&UTC=480&B=0&EXLTT=31&HV=1772513615&HVE=CfDJ8HAK7eZCYw5BifHFeUHnkJG5-y-KIWQt-NF_NMj7g1XTM1-_JG0BerkqmNlMA6aKg05rC8K2OStN3YDTyMImRVQF5L_6zrEgwK6ZcPtJ3gztJYslxiZ1TWc_xSfKw0DYQIgHOgNptd1LBakvWWLa1hicLJWteNn5q25s5xjn8jubB-w9Uiu1EejkHoi-32cY5A&PRVCW=1912&PRVCH=956&AV=14&ADV=14&RB=0&MB=0",
|
||||
"GC": "QPiD6byfk27yxnUrhpFqxudo4c6Pg9q_h7cagC6f-zUvTCH6_w1OTEefjzYAM_yBVCS34dGzJwEwYAqrF3vdeg",
|
||||
"_RwBf": "r=0&ilt=142&ihpd=0&ispd=2&rc=200&rb=0&rg=200&pc=200&mtu=0&rbb=0&clo=0&v=2&l=2026-03-03T08:00:00.0000000Z&lft=0001-01-01T00:00:00.0000000&aof=0&ard=0001-01-01T00:00:00.0000000&rwdbt=0&rwflt=0&rwaul2=0&g=&o=2&p=&c=&t=0&s=0001-01-01T00:00:00.0000000+00:00&ts=2026-03-03T08:34:46.0338286+00:00&rwred=0&wls=&wlb=&wle=&ccp=&cpt=&lka=0&lkt=0&aad=0&TH=&cid=0&gb=",
|
||||
"dsc": "order=BingPages",
|
||||
"SRCHUSR": "DOB=20250807&DS=1&POEX=W",
|
||||
"_clsk": "jfg95q%5E1772526891301%5E2%5E0%5Eb.clarity.ms%2Fcollect",
|
||||
"SRM_B": "048D92FAA90262ED311E84BBA8B46303",
|
||||
"bcookie": "\"v=2&1dc84fe2-344c-4273-89b9-7f4c3c122d40\"",
|
||||
"li_sugr": "e0fb56e0-21e4-4fdd-b43f-fb89f71cf2be",
|
||||
"UserMatchHistory": "AQKBfWqe0n66KwAAAZyeSDycVPBDed8LhvZSAXGPSSKe5rGyV4fu_qTWR5307WPbfvyYOEQtrc2hpQ",
|
||||
"AnalyticsSyncHistory": "AQJ4sQJBEiydVAAAAZyeSDycyJ1sdGtpRsuzCaoKt6_jH_Nm3B5BM2oYfFPZH6uSTjMrH1r9gs4w5xWYlSW8tg",
|
||||
"uuid2": "7637048064474162103",
|
||||
"anj": "dTM7k!M4/QDunaTF']wIg2Il^ts$vJNWBV:FGWY@!l0S`-99c1`*%j^=MxJ#RWKOt2Mi_dR-O^M'4UWu=YvYr2^$Q^R#*cPL7X^AE[uP'G3<GXiY9x^FSM)BW:LQKFS^aKT'c+KTByJtD%%pCWVhB6A]QQkL1ePxP(hw9P-HC_#txBq/j@xY",
|
||||
"__mguid_": "800cce956f42de552tz4gz00mjv6limx",
|
||||
"UID": "1E726c5474122f419f887e01754533128",
|
||||
"Hm_lvt_84d83be2d222c849b5f6945470e02e77": "1754533983",
|
||||
"Hm_lvt_a28e4e7f74f93174334a7c2bb3a61438": "1754534006",
|
||||
"_xsrf": "WjdIIskNxcIpcrAzv2jv6zaoKxziDQxq",
|
||||
"_zap": "4eff455a-9794-490f-82ef-1fef60cac94b",
|
||||
"d_c0": "RKYTOhGt4BqPTpnbeznaAVarTCxWiDEXAqg=|1754534352",
|
||||
"z_c0": "2|1:0|10:1772166860|4:z_c0|92:Mi4xWHhTRlV3QUFBQUJFcGhNNkVhM2dHaVlBQUFCZ0FsVk56R3lPYWdBa19lSWxqVzdVLW5XU1NXeTN3RFdjU1FlN3Bn|c640f81c61ba2cd39f46cc596fd0e3f2086835c0889022637a84490d443f9ce1",
|
||||
"__zse_ck": "005_V6Z9rfUHpY57LkyD6q2tRCMd9NT1xJVdd0NVMUWqKqpHxUaXWfUM9xDGQZoh5zJ9FetdInyj=y8MHnnJFx5bgNiLYLsFXUVXMXYr8UIi0Fac9Tgi6TOHU2bX=raTQreQ-4zsHMWV+21LIQrbTyRg1ZJ7Oz6woSnvIsFKgEaVNrbVZwnJTdG3iXn1AvnKkjPcpa/ArI8qVM43lf2Q8z75eHSmDWMT0AUfPAWZlgbtxa3qlehIelToQzvhUuuDm/J8i",
|
||||
"Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49": "1772166859,1772249534,1772439716",
|
||||
"Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49": "1772439716",
|
||||
"uuid_tt_dd": "10_19120569720-1770601062636-508057",
|
||||
"fid": "20_09438226832-1754536879233-538814",
|
||||
"Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac": "1767183610,1767256090",
|
||||
"__gads": "ID=d1ab646aef48f051:T=1772166933:RT=1772166933:S=ALNI_MaDMF0GZRxS1fMTByZcAlF4Ir66iw",
|
||||
"__gpi": "UID=0000120c345e7d9c:T=1772166933:RT=1772166933:S=ALNI_MYlYFiLPSATyhMWqPAl_oJfreodqA",
|
||||
"__eoi": "ID=b5e8cf6550c0d135:T=1772166933:RT=1772166933:S=AA-Afja5XDjSSLiBGpAMw8F683aE",
|
||||
"Hm_lvt_866c9be12d4a814454792b1fd0fed295": "1754536923",
|
||||
"_ga": "GA1.2.705758728.1772439515",
|
||||
"_ga_M95P3TTWJZ": "GS2.1.s1754548562$o2$g0$t1754548562$j60$l0$h0",
|
||||
"d_ticket": "8b713259b9d8ea401f84fe8f989c1ad8bb5e2",
|
||||
"odin_tt": "07523300e902390cd8e6513572e01c952da261e72b2491634d73c346eb906f93257394db9e70d95eb194eaf0bca6713c1a67870d765ba6eb4ea4aace892ee243",
|
||||
"sid_guard": "b7db24dc8b7f19ea46f482081c2cdee9%7C1762929003%7C5184000%7CSun%2C+11-Jan-2026+06%3A30%3A03+GMT",
|
||||
"_uetvid": "e965528002ee11f192ca39550c9019b9|h7tvo6|1772182465196|12|1|bat.bing.com/p/insights/c/a",
|
||||
"ttwid": "1%7CHtEIDeuRoZgZDIowYBcOsZRy-HlytvldUR__gKT2T3I%7C1762935822%7Cd6ac751416291f25a3632f27deff56592dfddc09194c286cf4e72f46e1bcac10",
|
||||
"_octo": "GH1.1.1623899053.1754552198",
|
||||
"logged_in": "yes",
|
||||
"dotcom_user": "bwkstudio",
|
||||
"color_mode": "%7B%22color_mode%22%3A%22auto%22%2C%22light_theme%22%3A%7B%22name%22%3A%22light%22%2C%22color_mode%22%3A%22light%22%7D%2C%22dark_theme%22%3A%7B%22name%22%3A%22dark%22%2C%22color_mode%22%3A%22dark%22%7D%7D",
|
||||
"cpu_bucket": "md",
|
||||
"preferred_color_mode": "light",
|
||||
"tz": "Asia%2FShanghai",
|
||||
"_device_id": "5aa2d8a27227b8cbfcbe191ea2926115",
|
||||
"saved_user_sessions": "148923983%3A1NerKhfSF6i49od5AjA11vgWIUUGU72zqCi8tGOV51pGhQUY",
|
||||
"user_session": "1NerKhfSF6i49od5AjA11vgWIUUGU72zqCi8tGOV51pGhQUY",
|
||||
"__Secure-user_session_same_site": "1NerKhfSF6i49od5AjA11vgWIUUGU72zqCi8tGOV51pGhQUY",
|
||||
"_gh_sess": "d6w8XKDSyp4x0LELDDL4LMf6HIjoBeL9fPgNvWdTePnvm%2BTsMhGZX6i1rIisTfjus5eU9ouxA7GiXvV%2BJfSXnKSmSAgWIC5GbOPzpeUrkzeyeFeRyymDk7oLZ%2Fmyt3evKV2H9kLPT%2BoSmdLTYcHLBVVf2MVRHK46uMLFfcLPT%2BY3ZZRyAv1UfDs891drFTe43j9NwB0xakVit6J4L3U6Jrxp8Z6l1yECDz5AkVvTO1ACzftH9JlN7DUru9eg0UuzvEHLxOmGQE3WnzxCaitCJXudD0KblBnnKpc40C0xhGI2YdKBY0P5phGANtV86LMJw5HR%2FxBOXw%2FE75gXt%2ByylQaxwSGVI7MhqX01NA%3D%3D--wAxc5GAhLneq%2FrrI--tErr8YV4gGbuKdEPCZm3%2FA%3D%3D",
|
||||
"PSTM": "1754892945",
|
||||
"BIDUPSID": "73557C84A01BB9F415E88CA327097056",
|
||||
"BAIDUID": "E200E062E76E72EBC91821041C6A04A3:FG=1",
|
||||
"H_WISE_SIDS_BFESS": "63144_64005_65315_66204_66227_66242_66280_66254_66393_66469_66529_66551_66589_66593_66675_66679_66708_66717_66746_66617_66785_66792_66800_66805_66847_66856_66599",
|
||||
"BAIDUID_BFESS": "E200E062E76E72EBC91821041C6A04A3:FG=1",
|
||||
"ZFY": "z7mg:APxxEaZ66BFaAQZqTkcy:Asl7GW:BasKB8m5QZ0Xo:C",
|
||||
"H_PS_PSSID": "63144_67085_67499_67600_67645_67755_67313_67735_67831_67855_67857_67850_67859_67861_67863_67869_67884_67890_67900_67947_67951_67953_67955_67968_67880_67979_67990_68030_68056_68076_68086_68090",
|
||||
"H_WISE_SIDS": "63144_67085_67499_67600_67645_67755_67313_67735_67831_67855_67857_67850_67859_67861_67863_67869_67884_67890_67900_67947_67951_67953_67955_67968_67880_67979_67990_68030_68056_68076_68086_68090",
|
||||
"remember_token": "1|a1aebf9266c64541d16d4e1118ce92e1e10e00ffc172b4a14cf5513731be1c2bbb447acfa8a6cfdf784eedc284b3729003e54e599dd03cce5556d5baef447bd7",
|
||||
"_ga_HRXKP8MJ1B": "GS2.1.s1755237657$o2$g0$t1755237657$j60$l0$h0",
|
||||
"EXPID": "208aa5aa-171f-4bce-9e9d-7b1687867719",
|
||||
"xz_id": "b0f8c699-ad0f-b70d-59c3-467fd56419de",
|
||||
"Hm_lvt_1057fce5375b76705b65338cc0397720": "1758011687",
|
||||
"Hm_lvt_c5d39e518713a0233d647950271d1977": "1758011687",
|
||||
"_ga_4XYDLXHM1W": "GS2.2.s1758011688$o1$g0$t1758011688$j60$l0$h0",
|
||||
"Qs_lvt_67987": "1758011727",
|
||||
"Qs_pv_67987": "4391021314805066000",
|
||||
"Hm_lvt_ececf7308171f13183ebbe384c270488": "1758011687",
|
||||
"Hm_lvt_222aa1e9ba6c9f55f27aea53c8ca28ea": "1758011727",
|
||||
"Hm_lvt_bdf5c75d42b7a4bcd26762a4a8fd6f93": "1758011727",
|
||||
"captcha_v4_user": "7bf6a53c45344094a987dca7b0bf34fd",
|
||||
"sensorsdata2015jssdkcross": "%7B%22distinct_id%22%3A%2219baeb54a5f630-0787c2c1b401f74-4c657b58-2073600-19baeb54a6067b%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Flink%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTliYWViNTRhNWY2MzAtMDc4N2MyYzFiNDAxZjc0LTRjNjU3YjU4LTIwNzM2MDAtMTliYWViNTRhNjA2N2IifQ%3D%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219baeb54a5f630-0787c2c1b401f74-4c657b58-2073600-19baeb54a6067b%22%7D",
|
||||
"Hm_lvt_25b04a5e7a64668b9b88e2711fb5f0c4": "1758158812",
|
||||
"SITE_TOTAL_ID": "e98c8f8284e72d774ef048eb3441acd8",
|
||||
"CNZZDATA1281434683": "1077173059-1758163520-https%253A%252F%252Fwww.baidu.com%252F%7C1758163520",
|
||||
"__jsluid_s": "7219999069be663a0bca1bd073a34e0b",
|
||||
"Hm_lvt_6e78ef648057d9f2ab12dcc287b440f6": "1758163518",
|
||||
"_ga_ZBFSPWZC9H": "GS2.1.s1758163518$o1$g0$t1758163521$j57$l0$h0",
|
||||
"UM_distinctid": "19b73428b4810b-0743c09888e53e8-4c657b58-1fa400-19b73428b4958",
|
||||
"Hm_lvt_2283d46608159c3b39fc9f1178809c21": "1758164761",
|
||||
"Hm_lvt_b6f9005d3bac74cee0a79472dac7136c": "1758532086",
|
||||
"Hm_lvt_fb0785b7ec788d4d49eaa462f8935d9a": "1758532166",
|
||||
"qcc_did": "04f5ae79-3d23-4098-ad04-41c0f80551fb",
|
||||
"CNZZDATA1254842228": "113959433-1760067610-https%253A%252F%252Fcn.bing.com%252F%7C1760067618",
|
||||
"YYB_HOME_UUID": "40842a52-e2c9-40cb-b941-258c4e1358a0",
|
||||
"Hm_lvt_bee22ad562886a0c3c9e70e97e67022f": "1760086815",
|
||||
"Hm_lvt_7e2def1fe918f15f9f1c5c061f69b256": "1760150289",
|
||||
"MC1": "GUID=710734b33f8e42ce9ac931a839e775f0&HASH=7107&LV=202510&V=4&LU=1760318000333",
|
||||
"MSCC": "cid=iey9uo7ztrkv8teri8l5wl9m-c1=2-c2=2-c3=2",
|
||||
"Hm_lvt_40635ef25e31fa2a58ed58f935d0a1a0": "1760336781",
|
||||
"name": "jztvpk",
|
||||
"SUV": "251014153248F4IY",
|
||||
"gidinf": "x099980109ee1b734574530ab000039858e7698463e7",
|
||||
"SCookie": "2025%2D10%2D14%2015%3A32%3A49",
|
||||
"TUV": "17604271665817848953",
|
||||
"UOR": "tv.sohu.com,service.weibo.com,tv.sohu.com",
|
||||
"SINAGLOBAL": "2120891804574.8494.1760427245718",
|
||||
"ULV": "1760427245725:1:1:1:2120891804574.8494.1760427245718:",
|
||||
"weboffice_device_id": "bf9ca0b119e74f0f5a27a97ae4d997a4",
|
||||
"userInNewLayout": "true",
|
||||
"ui": "9B1178EE-B155-427E-98CE-A5B488B9F304",
|
||||
"pt_guid_sig": "7c59bd352cfc694c43385d093c5909ed960bfd3b1282100e9977172584061a14",
|
||||
"pt_recent_uins": "523fa2a3139142ea461668bcc11e76fcbbf92a19276c66e1b833e5485cc8ff12d0d0a01b6e931d46792754507ba6a137b9cabfd5c67e4916",
|
||||
"ab_jid": "02938d1bc8cc2f23c86dc56575741d2567ff",
|
||||
"ab_jid_BFESS": "02938d1bc8cc2f23c86dc56575741d2567ff",
|
||||
"ab_bid": "741d25680002938d1bc8cc2f23c86dc56574",
|
||||
"lang": "zh",
|
||||
"gitea_incredible": "Gmq2KqkxFC%3Ab3b5890077b0136b9726ec83ab0999c0d00752d2d3f15c14d37506d35a154c9f",
|
||||
"i_like_gitea": "b4de82f0bc69a0a0",
|
||||
"_csrf": "WJ8uBHtn9L9NF_RyO5AdVOE_y7s6MTc3MjQ0MzgxOTQ3NjE4MDg2MA",
|
||||
"qtrans_front_language": "zh",
|
||||
"smidV2": "2026022415480947912fd4180f32f75e382901cb778ce500edc99a1c9e6c500",
|
||||
".thumbcache_6b2e5483f9d858d7c661c5e276b6a6ae": "Z55IFJba0EIAQfC4ZxHAT8tgYesh3wVf7SdC7GbPqeVeisRJUgYJRWSnkGH5mqFHWs5zCajBcJ6/VFmYfpI6Fw%3D%3D",
|
||||
"HWWAFSESID": "2d6e543030f651efc58",
|
||||
"HWWAFSESTIME": "1772415888853",
|
||||
"ds_session_id": "95de770b5f834ff685f35f2ae99a51f3",
|
||||
"oai-did": "32e64010-5c9b-4f57-a8be-fbd47b1ee8b4",
|
||||
"_ga_9SHBSK2D9J": "GS2.1.s1762935838$o7$g1$t1762935892$j6$l0$h0",
|
||||
"oai-sc": "0gAAAAABpFEUj4Z1hY6XCv4cTnnKReCEAZyw8jW2oM9GAcpWN54Ban5C0j7xSKp-bUF9bw15hkF1K1LJnVlETVUA0NnjLqtCscL0wrhnICTZSl9vxFZvL8fa8ofWuBj_HmKXeq5kCq7spe1HB-akv0cANyD8DXgoLGYUTDw6NIcljqSyZ7zfsA45NvM2yacoIIFw-SvZVLWDErELf2PEvZP5N51A-Iw3sxHDhuQ3lN2gAuR4h3j_UV9I",
|
||||
"_ga_1BJ0XH0RSM": "GS2.1.s1762244934$o3$g0$t1762244934$j60$l0$h0",
|
||||
"oai-hlib": "true",
|
||||
"_dd_s": "aid=e1382baf-fc98-45e9-befe-d3780c7eed5c&rum=2&id=355a32a0-80f8-4403-b20c-2ca8a1fe1cf6&created=1771918370640&expire=1771919364953",
|
||||
"csrftoken": "7LxELouf8-BlptCogt0D_W",
|
||||
"mid": "aQmAHQALAAFmt2JERFLWNda_YCkj",
|
||||
"_pk_id.1.5703": "ffdcdcbef2341ea3.1762237177.",
|
||||
"_pk_ref.1.5703": "%5B%22%22%2C%22%22%2C1762242887%2C%22http%3A%2F%2Fnav.nxbw.net%2F%22%5D",
|
||||
"_ga_SJF0YS0LDW": "GS2.1.s1762244984$o1$g1$t1762244988$j56$l0$h0",
|
||||
"cst_44": "ts=1762244992",
|
||||
"cst_70": "ts=1762244992",
|
||||
"cst_78": "ts=1762244992",
|
||||
"cna": "aUsoIp789hcCAd737Rk9OdMm",
|
||||
"thw": "cn",
|
||||
"_hvn_lgc_": "0",
|
||||
"havana_lgc2_0": "eyJoaWQiOjEyMjMwODQ4LCJzZyI6IjZkM2JmZDIxMDk5OThlNmU4ZmZiZDE4NTQwMTY2MmYzIiwic2l0ZSI6MCwidG9rZW4iOiIxelRKQVZRUVB2QW9ESFZaZ1ZlVGFhZyJ9",
|
||||
"tracknick": "shstudio",
|
||||
"aui": "31310526",
|
||||
"isg": "BIeH6hSfor_eaCYzFAIxH74TFjtRjFtu3xqYell0o5Y9yKeKYVzrvsWJaoiWIDPm",
|
||||
"_cc_": "UIHiLt3xSw%3D%3D",
|
||||
"sgcookie": "E100VYHS%2BMX7vvYYSPdrciIkQnyK%2F8%2BTuOA40a3%2BOR%2BKpMHE4nthMtaVYEx47p5TzVc6IqwAy5d6XZzx5GL8bxzqyIorjdM7wAEkZ44kZGNfzNd2xUXWDywILoiWT4VySOAT",
|
||||
"havana_lgc_exp": "1798343297966",
|
||||
"tfstk": "gcDKRNajQFYnmbp6k9AMqbcd5g-MnCmEb2ofEz4hNV3tWPDox0D3V83Z87M3KD0T220i-Ycnqa3tcqKzOzc3ebnnDHPoAUr-eP0xED4uK7gt00xEKHyBebeEIXXu-ey-Vq2JoEvDnDoU38TDohzp1sw7VL4WsW6mxXgeoEvDIDoUU8TmxCQHdVEz5kZ7P9tTCPruV8aQNN1_cPa7F4NC51Z82asQAu16Xuz_P8wSPctTqPa7F8gSfxm2yPsQrThOa4SxjeOTH-DTvWUjvIW5eAB09riQWTTjBkL7lDaOFTaXOx9rXDYd3c2E2qEm-d6KkmiS3JDk41aEBo3LwAxl6lcmbbZnC353S2osK5MBqiqZNVk8K-IWdceLJSMQ6MtElcnSi5HMcKyLdyGuL0jv-cHK-Dktqg1_pJcTMveX3waosmH82Y8yBqnjVxynE35_8AE54YDmHgbAorEl9hKOa_PQbjl1x4cvVUT4Xrxpe_5z_hrTohKOa_PQblUDveCPa5-N.",
|
||||
"lid": "shstudio168",
|
||||
"ch": "JY_265",
|
||||
"new_lid_login": "0",
|
||||
"newuser_time": "1762483481186",
|
||||
"sid_cloud": "f060067d-ea0e-42d5-9df7-f5ca30aff2ea",
|
||||
"sid": "f060067d-ea0e-42d5-9df7-f5ca30aff2ea",
|
||||
"Hm_lvt_e6e890e978a935949b61a6f4a5752fb7": "1762483486",
|
||||
"uas": "brt_flag:1&system:&model_name:&browser_type:1&brand_name:&model_id:0&brand_id:0",
|
||||
"Hm_lvt_0b7aae973aad07b597863613aa8865c1": "1762483488",
|
||||
"uuid": "98f29722-fcc6-4ecd-bc94-a7a039ca94a6",
|
||||
"_pk_id.027daeb3b728.84d4": "db57cb3a-4a35-4263-bb67-a9bed9aeb456.1762483486.1.1762483486.1762483486.",
|
||||
"qqes_c_t_diuu": "8c4f5661c36a2d5b433b2fcb9f49ca4d",
|
||||
"Hm_lvt_496df7fb1f122b772f16a549c1369fdc": "1762483780",
|
||||
"Hm_lvt_d44b67217b90bf2331d5c7cf55365d0a": "1762483781",
|
||||
"Hm_lvt_7fa23a28544a6c66e9f3044ef69e55db": "1762483780",
|
||||
"Hm_lvt_76db11e576e7c3c851cac5dc903ff086": "1762483781",
|
||||
"Hm_lvt_a358628ea74f8d0ae8c17ffdd8680ef3": "1762483781",
|
||||
"Hm_lvt_562f802c6c6110d927c62cc794faf378": "1762484060",
|
||||
"buvid3": "28FB233C-A448-F791-943F-145F348FAF9460208infoc",
|
||||
"b_nut": "1762484360",
|
||||
"_uuid": "4E2710518-9832-B6C10-8852-834F55263CC761211infoc",
|
||||
"CURRENT_QUALITY": "0",
|
||||
"buvid_fp": "3456aec269c49678504155fc35bfef45",
|
||||
"buvid4": "A0E6CC59-8335-4931-4460-DF3396AD963762343-025110710-uyNkbc0j0PwI0PsppLnLrA%3D%3D",
|
||||
"rpdid": "|(umuk|l~lm)0J'u~YkR)RJYR",
|
||||
"theme-tip-show": "SHOWED",
|
||||
"CURRENT_FNVAL": "4048",
|
||||
"theme-avatar-tip-show": "SHOWED",
|
||||
"store-idc": "alisg",
|
||||
"store-country-code": "fr",
|
||||
"store-country-code-src": "uid",
|
||||
"_ga_GF2YEJBQ7P": "GS2.1.s1762935816$o2$g1$t1762935823$j53$l0$h0",
|
||||
"_ga_JVLR55T34K": "GS2.1.s1762935816$o2$g1$t1762935826$j50$l0$h2047030769",
|
||||
"cc_cookie": "%7B%22categories%22%3A%5B%22essential%22%2C%22optional%22%5D%2C%22revision%22%3A0%2C%22data%22%3Anull%2C%22consentTimestamp%22%3A%222025-11-12T06%3A22%3A47.779Z%22%2C%22consentId%22%3A%22d4c232d7-607b-4b9d-a802-0958ca62f730%22%2C%22services%22%3A%7B%22essential%22%3A%5B%5D%2C%22optional%22%3A%5B%5D%7D%2C%22languageCode%22%3A%22en%22%2C%22lastConsentTimestamp%22%3A%222025-11-12T06%3A22%3A47.779Z%22%2C%22expirationTime%22%3A1778653367780%7D",
|
||||
"__uni__uid": "rBEQYmkVPnJqP491AyHJAg==",
|
||||
"locale": "zh-CN",
|
||||
"remember_82e5d2c56bdd0811318f0cf078b78bfc": "eyJpdiI6ImRHT2drYjVHNUhlSUpMeEJleXRSaHc9PSIsInZhbHVlIjoialNGRW0yUWpKYzZlUWZta3R6cjVleVFzXC94ekRNZGNXclZ0eVwvZG9wb3c0MElxaG1qbTJXaFFkU3g3dkgxOVk0VWhMRWNBa0k3MVJST0JJcHZVSlZtWSt5MU5WcDdtMnBUYWxDaCsrRjlqVT0iLCJtYWMiOiJhZDk5Njk0OGExMDM1YTYyMjc2MGU1M2RjMTY0ZGQ0Zjg2MjM4MjVkMWM3MWViYzM4OGJlMTUzODg5MzRkMmQ5In0%3D",
|
||||
"HBuilderXInstallHint": "true",
|
||||
"ext_u_info": "eyJpdiI6Ik01R0t5aTRJWlBRRGRkR3h2SmhDb2c9PSIsInZhbHVlIjoidzhGVHl3M3BaZXJvMlVMXC9CdDVpcXFXVUJTVTMrNEZPZ1M3cnBMUGJLMCtDTXNMTmx5MFwvTFF5TEdlM2ZxUGZEcVJmdzlRbU9kTVVKMzVxMUk1QUJNaWlsZkVQSEpYeXNmdVNjS1JIRW54TFZlZXc1aGJUeVpHbzJiRTBNdlJHQndkS3Iyb0JpbTBSYlVlZmdBUk5Nbmc9PSIsIm1hYyI6IjAwNDhhMDFlMjczZWEwMWM0MzRlZjU2MDRhZTIxNDU1YTEwODg5YjM4ZTU1NWUwMjMzNTBhYjNiODI2ZTNiNzcifQ%3D%3D",
|
||||
"lv_play_index": "38",
|
||||
"appuser": "7ABFFDE0615DD1B8",
|
||||
"o_minduid": "1zEgVkX8BvKtpvWHT4AaV8Dm2gDYBj4H",
|
||||
"lcad_o_minduid": "1zEgVkX8BvKtpvWHT4AaV8Dm2gDYBj4H",
|
||||
"lcad_appuser": "7ABFFDE0615DD1B8",
|
||||
"ts_uid": "1048922140",
|
||||
"Hm_lvt_61e08812aebe8d9feb241138e8b78846": "1763692709",
|
||||
"code": "artifact-reforge%3Dfalse%2Casync-blocked%3Dtrue%2Cauth-by-wechat%3Dtrue%2Cci-qci%3Dfalse%2Cci-team-step%3Dfalse%2Cci-team-templates%3Dfalse%2Ccoding-flow%3Dfalse%2Ccoding-ocd-java%3Dfalse%2Ccoding-ocd-pages%3Dtrue%2Centerprise-permission-management%3Dtrue%2Cmobile-layout-test%3Dfalse%2Cproject-permission-management%3Dtrue%2Cservice-exception-tips%3Dfalse%2Ctencent-cloud-object-storage%3Dtrue%2C5b585a51",
|
||||
"ajs_anonymous_id": "3cfceff9-24dc-4e5f-9e45-f8c05526bc7f",
|
||||
"_reb2buid": "33ed2736-a64c-4d24-86c1-9485432792bd",
|
||||
"_reb2beid": "614a22b2-12a9-406e-b2fb-b4cda2366caf",
|
||||
"_producthunt_session_production": "BpFNHOaQehab8r2mH0JUYCRhPUgHj7hOsdJPWJJwwIZhL3yCzWQlZg17MA0lY2wEq%2FFHOHQdltK4BdAcV5fpHoTSklk3Pd%2FTeBo17sTgtl3d%2B0D%2B90w8SZG2d0IGtweBHeSzhp1ocyZm8ALMVQeko9QYkMwGyJ0YL83fuv9oeatWBO2HnbaLz0SBAS%2FSxv%2ByN1nATIf9ZQ4lYyhPzUaNrrH31OeJB6eKgw9Z2m3lotypCuA82QI2RqvkEpIOFPL0KfPC%2FYwOUuoqfKSkwR5yuJ8FaaPffElauUzF%2F%2FFGr%2BnwD5renASnWnOOhgLbVQoVgFqQuvb7eSxauDJVGA%3D%3D--4g5yX3CGz8c%2FS0EA--FVzjSjU2mHOvSu7eR1P1Qw%3D%3D",
|
||||
"_ga_WZ46833KH9": "GS2.1.s1764207522$o3$g0$t1764207522$j60$l0$h0",
|
||||
"visitor_id": "1ad2a5dc-944d-4fad-b528-29f656ca2ca2",
|
||||
"track_code": "5f03d25cb5",
|
||||
"_gcl_gs": "2.1.k1$i1765247746$u18050735",
|
||||
"_gcl_aw": "GCL.1765247752.Cj0KCQiAi9rJBhCYARIsALyPDttOehjUDIt_ZHJJ1PFyCYlXoC5F_EStAMnglUpdOTysPnep2Zh-3j0aAmr_EALw_wcB",
|
||||
"_gcl_dc": "GCL.1765247752.Cj0KCQiAi9rJBhCYARIsALyPDttOehjUDIt_ZHJJ1PFyCYlXoC5F_EStAMnglUpdOTysPnep2Zh-3j0aAmr_EALw_wcB",
|
||||
"_ga_WC57KJ50ZZ": "GS2.1.s1765247752$o2$g0$t1765247753$j59$l0$h0",
|
||||
"_ga_BF8Q35BMLM": "GS2.1.s1765247752$o2$g0$t1765247754$j58$l0$h0",
|
||||
"__Secure-1PSIDTS": "sidts-CjQBwQ9iIxD_LN6ClsCvZLnUHRbCVycV1bYOF1jnn-0uVFlVfgb0jhGvGI1N3Ah3HO_jYp-EEAA",
|
||||
"__Secure-3PSIDTS": "sidts-CjQBwQ9iIxD_LN6ClsCvZLnUHRbCVycV1bYOF1jnn-0uVFlVfgb0jhGvGI1N3Ah3HO_jYp-EEAA",
|
||||
"HSID": "AeMrMooMx8Je5Fkj3",
|
||||
"SSID": "AMfYr_N-JqLQ3UA47",
|
||||
"APISID": "-lIp8J9MT-arhxxN/AqJdGb8P4RxJqZJWn",
|
||||
"SAPISID": "gTwtxAG526YsahHF/AgN3Tz9w2dnWmRAbA",
|
||||
"__Secure-1PAPISID": "gTwtxAG526YsahHF/AgN3Tz9w2dnWmRAbA",
|
||||
"__Secure-3PAPISID": "gTwtxAG526YsahHF/AgN3Tz9w2dnWmRAbA",
|
||||
"SID": "g.a0004Ah8KdklWs6_BRra3eomxQdP1SqU34mfNmiuJ3UHieb7Ml9Lv22K7u3n6r2636BfyR1uNwACgYKAaUSARISFQHGX2MifZOmtyprrIJqNQigi7U42xoVAUF8yKrByFdZVeslAY6GOlP3frIb0076",
|
||||
"__Secure-1PSID": "g.a0004Ah8KdklWs6_BRra3eomxQdP1SqU34mfNmiuJ3UHieb7Ml9LAVMGSQSTh8YrxWHY8v7IJAACgYKAXkSARISFQHGX2Mi84uHIb13aLIbWdx16fL0kBoVAUF8yKqWXQ8Ju6p1tiowZQ1rqoz80076",
|
||||
"__Secure-3PSID": "g.a0004Ah8KdklWs6_BRra3eomxQdP1SqU34mfNmiuJ3UHieb7Ml9LaGVKH8D3OUF7s8JM5gGrIAACgYKAScSARISFQHGX2Mid4l9xRXR_F6-OCMVD3VCvxoVAUF8yKrb1oOPLrNHW7VEeaxq1Pct0076",
|
||||
"LOGIN_INFO": "AFmmF2swRQIgPiKex9A-99ldxuL0jvhPe1vZVmLtje508qHV3mwm5vECIQDCNk1fzMKKNcrmq815_KkAyP52OXAL8PvvdjafuM1mPg:QUQ3MjNmeFg2ZVdhMmdYbmdraU55MjFCaElhSlNobVQ3aGlRUEt6UTdDYmR0VDU0V3BHY3VLMHNaUzEzbVNNbGtqUkRrblBSRmk2dnJ0dF9CVndHN3BsMHZuZDFhbVNZMktQaHREblBMNUZmOXlnZlhVUzM4NDZScURaeWkzek5DaTBzRjhkN2lyTmdDNl9rQXY4V05lSUVqV3NVaEVPdUtn",
|
||||
"VISITOR_INFO1_LIVE": "rIb9-XcDy9w",
|
||||
"VISITOR_PRIVACY_METADATA": "CgJVUxIEGgAgIQ%3D%3D",
|
||||
"__Secure-3PSIDCC": "AKEyXzXAx7Xhi0QtpJAwmqvXPMknavCHj5iqODrM-oeK13ybFsGrzKuOIMcmYy78VhegDiWm",
|
||||
"_ga_75RKJPZ3NQ": "GS2.1.s1765251529$o4$g0$t1765251534$j55$l0$h0",
|
||||
"fpc": "AoUrW1QdXlZCs2jPGT8aI60",
|
||||
"x-ms-gateway-slice": "estsfd",
|
||||
"stsservicecookie": "estsfd",
|
||||
"_parsely_visitor": "{%22id%22:%22pid=320af14f-4880-4278-b58b-e2926fc9c11e%22%2C%22session_count%22:1%2C%22last_session_ts%22:1764737115464}",
|
||||
"_ga_KBLBYHG5EP": "GS2.1.s1764737116$o1$g1$t1764737527$j60$l0$h0",
|
||||
"PVELangCookie": "zh_CN",
|
||||
"_ga_DE62ZQEEDG": "GS2.1.s1765248027$o1$g1$t1765248659$j60$l0$h0",
|
||||
"OAID": "08029a930f704d94f4511e3772714e22",
|
||||
"_gcl_au": "1.1.384112565.1772248742",
|
||||
"_fbp": "fb.1.1765248423504.965517657228625420",
|
||||
"st-last-access-token-update": "1765248751107",
|
||||
"sFrontToken": "eyJ1aWQiOiI1OWRjNWIyMy05OWQzLTRmMjItYjY0NS1kNzM4MzgxYzA4NmMiLCJhdGUiOjE3NjU4NTM1NDcwMDAsInVwIjp7ImlhdCI6MTc2NTI0ODc0NywiZXhwIjoxNzY1ODUzNTQ3LCJzdWIiOiI1OWRjNWIyMy05OWQzLTRmMjItYjY0NS1kNzM4MzgxYzA4NmMiLCJ0SWQiOiJwdWJsaWMiLCJyc3ViIjoiNTlkYzViMjMtOTlkMy00ZjIyLWI2NDUtZDczODM4MWMwODZjIiwic2Vzc2lvbkhhbmRsZSI6IjhhMmUyZDA5LWMyZTUtNDA0OC04MWY1LTNhMmNmZTJjYzA3MiIsInJlZnJlc2hUb2tlbkhhc2gxIjoiY2Y2MGMzMjBiMTYxMGEwOTA3OGViMTI5YTgyYzFlZDI4YTYzMTY4Y2ZkODlkOTVjM2Y1MTZkOTEyNzUzYjAxNyIsInBhcmVudFJlZnJlc2hUb2tlbkhhc2gxIjpudWxsLCJhbnRpQ3NyZlRva2VuIjpudWxsLCJudWJlVXNlcklkIjoiNzQwMmVkZjUtNTVkMy00Yzk5LWE4ZGQtNmE0ZjcyOWYzNjVjIiwidXNlcklkIjoiNTlkYzViMjMtOTlkMy00ZjIyLWI2NDUtZDczODM4MWMwODZjIiwibG9naW5FbWFpbCI6Ijc0Njk1MDRAZ21haWwuY29tIiwiZGV2aWNlIjoiV2luZG93cyIsIm9zIjoiV2luZG93cyIsImJyb3dzZXIiOiJFZGdlIiwiaXAiOiIxNTYuMjM4LjI1MS42IiwibG9jYXRpb24iOiJVUyIsInR3b0ZhY3RvciI6ZmFsc2UsImF1dGhFbWFpbCI6bnVsbCwic2tpcDJmYSI6dHJ1ZSwiZW1haWwiOiI3NDY5NTA0QGdtYWlsLmNvbSIsImlzcyI6Imh0dHBzOi8vYXBpLm51YmUuc2gvYXV0aCIsInN0LWV2Ijp7InYiOnRydWUsInQiOjE3NjUyNDg3NDkyNzN9fX0=",
|
||||
"_ga_FNNWQD18KT": "GS2.1.s1765253900$o2$g0$t1765253900$j60$l0$h1079172310",
|
||||
"bscookie": "\"v=1&20251209024704cd4d5d40-fab1-481c-87f7-a918010591afAQEPujWnHN1l2ztIuIShkVxWBGyCh6iF\"",
|
||||
"g_state": "{\"i_l\":0,\"i_ll\":1765248451424}",
|
||||
"Hm_lvt_2bdff2d367b1c5072d1cd1e21f171bd1": "1765248789",
|
||||
"__ckguid": "Jvhl35OqIrrLx2rOh464",
|
||||
"device_id": "191206646017652488724401346aabea9e8ed7c71cbb98716fe0ed1ada",
|
||||
"fingerprint_1765251531821": "undefined-1765251531821",
|
||||
"_tea_utm_cache_711126": "{%22utm_source%22:%22bing%22%2C%22utm_medium%22:%22bing_xxl%22%2C%22utm_campaign%22:%22487131935%22%2C%22utm_term%22:%22trae_bing_xxl_dm_pc_cpc_hx_1%22}",
|
||||
"Hm_lvt_43e7eadc8f61e1e064906952da7d51f0": "1763000429,1765268200",
|
||||
"Hm_lvt_e6e476f539acd956e72470affc398100": "1765437694",
|
||||
"Hm_lvt_6ad6f9c2978db31b82be94bbfb42a67e": "1765267726,1765439312",
|
||||
"PHPSID": "caa7f3a62f55da419ea5d97d3ac73a8a",
|
||||
"c_secure_ssl": "eWVhaA%3D%3D",
|
||||
"Hm_lvt_bab35868f6940b3c4bfc020eac6fe61f": "1767163341",
|
||||
"__51uvsct__KETfWw4w4sWgMHax": "1",
|
||||
"__51vcke__KETfWw4w4sWgMHax": "afb74639-c379-519c-a8bf-d0483827521b",
|
||||
"__51vuft__KETfWw4w4sWgMHax": "1767165262594",
|
||||
"Hm_lvt_03081e0b52580b8e90a4bf37afdfef06": "1767165263",
|
||||
"CNZZDATA1281410160": "926105911-1767165300-null%7C1767168779",
|
||||
"c_secure_uid": "MTc2OTk1",
|
||||
"c_secure_pass": "eyJ1c2VyX2lkIjoiMTgwMjUiLCJleHBpcmVzIjoxODAwMDc1MjE1fS42MDNlNzBlYTJlMDcxYzVkODBkNjdkZWFhOTcwNmIyNmExY2FhMTlhZTZkOTgxYTlkNmFhNGJmODg0NjBjMTM0",
|
||||
"c_secure_tracker_ssl": "eWVhaA%3D%3D",
|
||||
"c_secure_login": "bm9wZQ%3D%3D",
|
||||
"Hm_lvt_911ff1035540bbb86890f5769c5b0352": "1767185324",
|
||||
"_ga_FBLK8KC677": "GS2.1.s1767185340$o1$g1$t1767185391$j9$l0$h0",
|
||||
"X_CACHE_KEY": "1df5b4c041211c3629f37af7a10ec7c7",
|
||||
"skupanel-skuoptions-layout-mode": "listMode",
|
||||
"Hm_lvt_0cbdbdcb93367660c01f0389a31e8901": "1767240765",
|
||||
"Hm_lvt_1be120edc2ce83b69752d0d9dd6b6ec1": "1767255994",
|
||||
"id": "22baa3df34fe00fa||t=1765247747|et=730|cs=002213fd4880e16ebfd2d2382d",
|
||||
"preferences": "%7B%22adult%22%3Afalse%2C%22i18n_fallback_language%22%3A%22en-US%22%2C%22locale%22%3A%22zh-CN%22%2C%22country_code%22%3A%22CN%22%2C%22timezone%22%3A%22Asia%2FShanghai%22%7D",
|
||||
"t": "v_622174ce-91b8-400d-873c-b2d6111894a8",
|
||||
"u": "1767256005",
|
||||
"_ga_4257LNMWD9": "GS2.1.s1767260421$o3$g0$t1767260421$j60$l0$h0",
|
||||
"Hm_lvt_292b2e1608b0823c1cb6beef7243ef34": "1767256136",
|
||||
"HOSUPPORT": "1",
|
||||
"HOSUPPORT_BFESS": "1",
|
||||
"__51uvsct__KVQCZSy0FZ0f12mv": "1",
|
||||
"__51vcke__KVQCZSy0FZ0f12mv": "4ce6b253-0935-5f03-b658-01cd9d644248",
|
||||
"__51vuft__KVQCZSy0FZ0f12mv": "1767256204901",
|
||||
"user_sample_id": "72",
|
||||
"_ga_ECCZ7HFLZ0": "GS2.1.s1769754171$o5$g1$t1769754448$j60$l0$h0",
|
||||
"traid": "65d6fb3b68854b6887d5538b37280ec6",
|
||||
"_ga_4XBVNY5TKP": "GS2.1.s1767272297$o1$g1$t1767272460$j60$l0$h281388689",
|
||||
"_ga_JKDERG263V": "GS2.1.s1767272297$o1$g1$t1767272461$j60$l0$h63290682",
|
||||
"Hm_lvt_723459747aa85ac30c7586a117fc73d9": "1767272298",
|
||||
"ctid": "E200E062E76E72EBC91821041C6A04A3",
|
||||
"cfz_zaraz-analytics": "%7B%22_cfa_clientId%22%3A%7B%22v%22%3A%2297653776335689820%22%2C%22e%22%3A1798809519163%7D%2C%22_cfa_sId%22%3A%7B%22v%22%3A%2246580192960529200%22%2C%22e%22%3A1767275319163%7D%7D",
|
||||
"cf_consent_vendors": "{\"755\":true}",
|
||||
"zaraz-consent": "{\"YkIe\":true,\"tcf-purposes-1\":true,\"tcf-purposes-3\":true,\"tcf-purposes-4\":true,\"tcf-purposes-2\":true,\"tcf-purposes-7\":true,\"tcf-purposes-9\":true,\"tcf-purposes-10\":true}",
|
||||
"euconsent-v2": "CQdWToAQdWToAGxABAENCLFAAPLAAAAAAAAAF5wAQF5gAAAA.IF5wAQF5gAAA",
|
||||
"cfz_google-analytics_v4": "%7B%22Labv_engagementDuration%22%3A%7B%22v%22%3A%223075%22%2C%22e%22%3A1798809557236%7D%2C%22Labv_engagementStart%22%3A%7B%22v%22%3A%221767273557236%22%2C%22e%22%3A1798809557236%7D%2C%22Labv_counter%22%3A%7B%22v%22%3A%222%22%2C%22e%22%3A1798809554161%7D%2C%22Labv_ga4sid%22%3A%7B%22v%22%3A%22955464905%22%2C%22e%22%3A1767275354161%7D%2C%22Labv_session_counter%22%3A%7B%22v%22%3A%221%22%2C%22e%22%3A1798809554161%7D%2C%22Labv_ga4%22%3A%7B%22v%22%3A%22b11af8cf-6a8f-407f-b52e-6638b93a9e14%22%2C%22e%22%3A1798809554161%7D%2C%22Labv__z_ga_audiences%22%3A%7B%22v%22%3A%22b11af8cf-6a8f-407f-b52e-6638b93a9e14%22%2C%22e%22%3A1798809541176%7D%2C%22Labv_let%22%3A%7B%22v%22%3A%221767273554161%22%2C%22e%22%3A1798809554161%7D%7D",
|
||||
"Hm_lvt_ec8a58cd84a81850bcbd95ef89524721": "1767183610,1767274639",
|
||||
"Hm_lvt_6859ce5aaf00fb00387e6434e4fcc925": "1767274730",
|
||||
"bid": "jaXYZDVlbzo",
|
||||
"Hm_lvt_16bea9b124e2f593705dfb2997ff87db": "1765267720,1765438408,1767507173",
|
||||
"Hm_lvt_11a5aed8e5490c70118924cd637bec99": "1767507194",
|
||||
"Hm_lvt_d88cf351a1a0af968ec466035e9c18f1": "1767507281",
|
||||
"Hm_lvt_5539df56af8af39a300c392e872bca0f": "1767920697",
|
||||
"leid": "1.8ZY3kganTE8",
|
||||
"LA_F_T_10000152": "1768162672479",
|
||||
"LA_C_Id": "_ck26011204175214997775253081878",
|
||||
"LA_R_T_10000152": "1768162672479",
|
||||
"LA_V_T_10000152": "1768162672479",
|
||||
"LA_M_10000152": "%3A%3Amarket_type_free_search%3A%3A%3A%3Abaidu%3A%3A%3A%3A%3A%3A%3A%3Awww.baidu.com%3A%3A%3A%3Apmf_from_free_search",
|
||||
"LA_M_T_10000152": "pmf_from_free_search",
|
||||
"LA_M_W_10000152": "_ck26011204175214997775253081878%7C10000152%7C%7C%7C",
|
||||
"Hm_lvt_fc2a0689ed062fc73c62d09061034a50": "1768162672",
|
||||
"LA_C_C_Id": "_sk202601120442560.16818300.7966",
|
||||
"LA_C_S_Id": "_sk202601120442560.16818300.7966",
|
||||
".thumbcache_fa5607ee107e2a8e0c319b41a88868c3": "IiASlYUG2LvG2fgu6f3fA7w01lAky9CKxBecV5dSUf1ZpmWEiCakIE5n+Mnj5Vzg6XPpBd2+Z7ide9xPW+l/LA%3D%3D",
|
||||
"passport_web_did": "7597320361293646809",
|
||||
"passport_trace_id": "7597320361314618312",
|
||||
"QXV0aHpDb250ZXh0": "d9c0b03e452c48b1b85ca5579c4072ec",
|
||||
"i18n_locale": "zh",
|
||||
"__tea__ug__uid": "5462261768888995044",
|
||||
"landing_url": "https://accounts.feishu.cn/accounts/page/login?app_id=7&no_trap=1&redirect_uri=https%253A%252F%252Fopen.feishu.cn%252Fapp%253Flang%253Dzh-CN",
|
||||
"s_v_web_id": "verify_mm8wtpkk_BdK7Sl5L_qvaW_40MZ_9DTK_1jFGpPg2T7Ys",
|
||||
"session": "XN0YXJ0-413va033-51b5-40c3-92f2-4191ce7ba25e-WVuZA",
|
||||
"session_list": "XN0YXJ0-413va033-51b5-40c3-92f2-4191ce7ba25e-WVuZA",
|
||||
"swp_csrf_token": "a1cb667c-d6f3-4ac5-a311-82c6fc33ea6c",
|
||||
"t_beda37": "66e4dc317af1653f761fb814df37c9f039a54490ac87b3e8084898f0ac1aca4d",
|
||||
"msToken": "uKMVLzB59aqn6-aKMYWLMdNJQ8g0V1FVLJzXQRTnJIykCmtMf0djuLZFbQ90X2fktSWYFJ7LLgOAhwjkTnl4CFymED_mnSsETldwEVpAEJmw8_k6Zivb1XI5-joriQ-sDOYBBEF4596gIplKfdBwiclVJe7xB9EQsmSaN2tQvKeUrg==",
|
||||
"_ga_VPYRHN104D": "GS2.1.s1772190722$o4$g0$t1772190722$j60$l0$h0",
|
||||
"_ga_87PRZH8X9Q": "GS2.1.s1768890533$o1$g0$t1768890534$j59$l0$h0",
|
||||
"_c_WBKFRo": "Fx5VMs0Ak4Yx5xUtJ495jsEzZMGfLxCTSkCQXVve",
|
||||
"xlly_s": "1",
|
||||
"BXAuth": "eyJraWQiOiIxMDAxMjAwOTExMSIsImFsZyI6IlJTMjU2In0..XWUw9q0tv5p-XP9pIehDw5-JC0t-haEJD_VmSUY1ocTS_pvZhtC7DoVxYu6UeUu6oqmWtrUBk-eAVVf4iDv8trBnfi9r6zLv7PAE3kgvTuUJMftWzFQKlCd5vta46iQ6S0dxr1v7HQfL5pDJs5I7S3pI65JkUoDuCh1biBbdZIRZ1ozQcaUJ9oOUTAzg7rp9_iQKE1AU7b7ANaw2Z0BLy8v5C3FgNa2fcUW7BsNq1k1FaQRumeKNz1i-oVDoV6Et2QNrwI9Mx6ekiJP4f5T6FZmUba8D008bjFXIeu_NkxPYVWpi5NGnwg7Ckd24T0BphG9UZMoZOY7wZklvWyZ3eg",
|
||||
"BXId": "vNAJtmnKqWEZMZsIncIXpQ==",
|
||||
"ai_user": "tK6toFGLxFT4OXAmx/UyKV|2026-01-22T08:19:59.516Z",
|
||||
"runoob-uuid": "e81b3b5a-bcdb-499e-80ea-c923f6943076",
|
||||
"Hm_lvt_3eec0b7da6548cf07db3bc477ea905ee": "1769170790",
|
||||
"_ga_GZWD71V4S3": "GS2.1.s1769170789$o1$g1$t1769171567$j60$l0$h0",
|
||||
"Hm_lvt_77764f7dce83b789c182bd10e3c10fd8": "1769312004",
|
||||
"bwadmin_key": "845f1608d6c616ced6d34347a2f4e346",
|
||||
"language": "zh-CN",
|
||||
"Hm_lvt_afe771994da6b690d913d2dbe5c6c213": "1767163387,1767272107,1769595555",
|
||||
"QiHooGUID": "BEF5033A379BF7FC9F44814DCB00D7B9.1769653518165",
|
||||
"__guid": "240647617.2208874726236946400.1769740551868.8567",
|
||||
"so_huid": "11bXnDKAovVJHprEeQF8pO8NkcKsO4dHuItxl1RhpZUaA%3D",
|
||||
"__huid": "11bXnDKAovVJHprEeQF8pO8NkcKsO4dHuItxl1RhpZUaA%3D",
|
||||
"so-like-red": "2",
|
||||
"dpr": "1",
|
||||
"webp": "1",
|
||||
"__qhsrc": "0",
|
||||
"__huid1": "11Ev6KZDcHf+fzYdQNwtnxdpxUZK0HUM/FIXpEwSomvqw=|1769653545",
|
||||
"amrkts": "1770014106",
|
||||
"v1": "IQlehndR2'=QNQjKc3bt",
|
||||
"T4kpbdTdBi5QO": "60IAALo4JOyhvt_THNF5k.mBYYf5o5uwv1BISqEBnHhC45RLoPa2ja9U1BkgXvwr2BWFHeaM35HvcPWZ4OdOAISq",
|
||||
"SECTOKEN": "6674124396285395905",
|
||||
"Hm_lvt_f2b2f836323f51dbde1f7f353523be8a": "1769739746",
|
||||
"__DC_gid": "240647617.414219710.1769740551871.1769740551871.1",
|
||||
"TDID": "ae6aee86-ed86-4b78-9419-12f2fafbe6ea",
|
||||
"TDCPM": "CAESFwoIcWlob28zNjASCwj-gee04YXxPhAFGAU4AUIEIgIIAQ..",
|
||||
"Hm_lvt_3aa0d0e0d0511ebfdc6ab64e9da8cc35": "1770003716",
|
||||
"Qs_lvt_457237": "1770003715",
|
||||
"Qs_pv_457237": "4520283135816594400",
|
||||
"channel": "NpaF066LCD%2BIu69d21CofDiStxLokagOUXULhhdVwGz5sYHD7vQLDk6QBcHBtdEG4DHpiBwvgWGtwu8Pi1s7yw%3D%3D",
|
||||
"baikeVisitId": "170f7841-9bd9-45ed-84d3-ea51acf44b76",
|
||||
"pvRK_2132_saltkey": "KqNSNmMO",
|
||||
"pvRK_2132_lastvisit": "1770343162",
|
||||
"pvRK_2132_smile": "1D1",
|
||||
"pvRK_2132_ulastactivity": "3048nP804VET6OicdWdNSld6ClfKiH0L3KMsxIpE%2BKB3DM4luFyO",
|
||||
"pvRK_2132_editormode_e": "1",
|
||||
"pvRK_2132_nofavfid": "1",
|
||||
"pvRK_2132_visitedfid": "4D22D25D2",
|
||||
"pvRK_2132_lastcheckfeed": "97821%7C1770968010",
|
||||
"dark_mode_setting": "system",
|
||||
"fingerprint": "55073df3210e486ab176c24d2deb36c843",
|
||||
"qm_device_id": "t27aVoyuauQGJb1QwNYoMNOyPCk9v/dUq7EBu/OWwq4cH8sAl9n3X9UmbPL4MK59",
|
||||
"xm_envid": "456_tXh4t9aZEq0uHxYoqK0wHS0SgYToVh0Uzz9S9iimnZiGthoNwEBSnAA93Y+aErFPMdShj6wEKluGdW7tyCjzP/SBUapDRcjtRbWgoosV1NR6QVx68NVuTSVe7LToSYfhSFEjBYKrhTTFFiQY7wkSj9Xpq6rvwV8=",
|
||||
"nvweb_A": "ae8ff3e7-fe3d-4dc0-899d-5c30a0cc36f9",
|
||||
"s_ecid": "MCMID%7C20384046723737712804175913029100912269",
|
||||
"AMCV_F207D74D549850760A4C98C6%40AdobeOrg": "-2121179033%7CMCMID%7C67486041432864987512558853067140747791%7CvVersion%7C5.3.0",
|
||||
"_cs_c": "0",
|
||||
"sc_cvp": "em-even-234-en-gb-2-l1",
|
||||
"ncid": "em-even-234-en-gb-2-l1",
|
||||
"VisitorID": "20384046723737712804175913029100912269",
|
||||
"sc_cmp": "em-even-234-en-gb-2-l1",
|
||||
"_mkto_trk": "id:156-OFN-742&token:_mch-nvidia.com-4a8309ba61341f4fb4d481ec10925fac",
|
||||
"_hjSessionUser_3655182": "eyJpZCI6IjhmNDE2OWIwLTNlNzgtNTAzNi1hNmVkLTM5MTg5ZThjNDdiNyIsImNyZWF0ZWQiOjE3NzAzMzYwNTk1NjksImV4aXN0aW5nIjp0cnVlfQ==",
|
||||
"ajs_user_id": "25ON8B2Iyt9ckIiLRWcNe68chOW6GRhdCoYYhe5Ziys",
|
||||
"analytics_session_id": "1770428906071",
|
||||
"analytics_session_id.last_access": "1770429081895",
|
||||
"ph_phc_PWWXIQgQ31lXWMGI2dnTY3FyjBh7gPcMhlno1RLapLm_posthog": "%7B%22distinct_id%22%3A%22user-39JzSAMJvAHux4cSv4A6kCZ3U0h%22%2C%22%24sesid%22%3A%5B1771906575392%2C%22019c8dd8-4892-7afc-80c7-8c44e30b0ca4%22%2C1771906287762%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22https%3A%2F%2Fbuild.nvidia.com%2F%22%2C%22u%22%3A%22https%3A%2F%2Fbrev.nvidia.com%2Fenvironment%2Fnew%2Fpublic%22%7D%7D",
|
||||
"AMP_MKTG_92dea1e784": "JTdCJTdE",
|
||||
"s_getNewRepeat": "1770336209652-New",
|
||||
"_cs_id": "1d2c73a3-c2b9-a549-b25f-19d721f80d73.1770336053.6.1772182464.1772182061.1749076063.1804500053639.1.x",
|
||||
"mbox": "PC#11b69c63f8134a99bf48594ca96572a2.38_0#1835427260|session#7299515284904f6ea77e09ac00a988e9#1772184325",
|
||||
"AMP_92dea1e784": "JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjI1ZmZiMzBiNi01OTQ5LTQ5YjAtODEzMi05MzVlNDQ5YTM3MjQlMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjIyNU9OOEIySXl0OWNrSWlMUldjTmU2OGNoT1c2R1JoZENvWVloZTVaaXlzJTIyJTJDJTIyc2Vzc2lvbklkJTIyJTNBMTc3MjE4MjA2MjA5MyUyQyUyMm9wdE91dCUyMiUzQWZhbHNlJTJDJTIybGFzdEV2ZW50VGltZSUyMiUzQTE3NzIxODI0NjQ0ODIlMkMlMjJsYXN0RXZlbnRJZCUyMiUzQTEyMyUyQyUyMnBhZ2VDb3VudGVyJTIyJTNBMTAlMkMlMjJjb29raWVEb21haW4lMjIlM0ElMjIubnZpZGlhLmNvbSUyMiU3RA==",
|
||||
"_gd_visitor": "fbdd9a51-9859-4cfb-83f4-44064d9c8b1d",
|
||||
"_gd_svisitor": "null",
|
||||
"R": "436caa70de23464943ccc53e",
|
||||
"tuid": "0d34b33f-446d-4330-b939-2311a7496938",
|
||||
"c_gitcode_fref": "https://cn.bing.com/",
|
||||
"c_gitcode_um": "-",
|
||||
"c_gitcode_rid": "1770601062640_377360",
|
||||
"Hm_lvt_62047c952451105d57bab2c4af9ce85b": "1770601063",
|
||||
"gitcode_first_time": "2026-02-09%2009:37:43",
|
||||
"gitcode_theme": "white",
|
||||
"_frid": "e5cd2ecb30ea4fe0852c5c0898255476",
|
||||
"Hm_lvt_f44c77c038dd3fcfea6a8bcb439067e5": "1769667159,1770317963,1770947884",
|
||||
"yqyadmin_key": "509796bbd9c0acb738b976846019fcbe",
|
||||
"PAD_BROWSER": "1",
|
||||
"BD_UPN": "12314753",
|
||||
"COOKIE_SESSION": "2_1_9_9_14_38_1_1_8_8_1_3_1157614_0_0_0_1771161288_1771161278_1772263966%7C9%233020015_10_1770969943%7C4",
|
||||
"account_info_switch": "close",
|
||||
"login_current_pk": "31310526",
|
||||
"aliyun_country": "CN",
|
||||
"aliyun_site": "CN",
|
||||
"aliyun_lang": "zh",
|
||||
"currentRegionId": "cn-hangzhou",
|
||||
"cnaui": "31310526",
|
||||
"yunpk": "31310526",
|
||||
"_alicloud_ab_trace_id": "efabc8a0-1129-11f1-9e66-41fc2dd753a8",
|
||||
"_ali_s_gray_t": "68",
|
||||
"_ali_s_gray_v": "onesite,au,in,vn",
|
||||
"aliyun_choice": "intl",
|
||||
"aliyun_intl_choice": "intl",
|
||||
"alicloud_deploy_r_s": "sg",
|
||||
"_umdata": "GF4B03BF1FDC8A08A206BB428A539CEE73DB43E",
|
||||
"__stripe_mid": "ca111c76-6d24-4b26-a86c-da895bf57c9fdd69cf",
|
||||
"statsig-anonymous-user-id": "6d5ed0aa-4bab-47ad-a4a3-c57810ed45b9",
|
||||
"__wuid": "Fe26.2*1*8dd792c43f46ef8bf8b910d238a16b2e30c3225e38de2374b43099d042a5fcaf*N-a-Z_Se5fEH4SUXyqUhnQ*_cZToqAUW4l5AFSKpSGNSGVicebzmZY_h1JZdgd2iJov4tFlvgzd_qaxj6po0fX_GXEWA0p__SBelvn5GCF0zwdt91e0Zsc0sIxcqibgAac*1777102420758*b0a364eb7ec605bd60e6e8711ff3fad727ade01c1034b0bebe9f9e28ad9f1705*S523aVW4dtIMlAZN1sk3SjomOceJF-lTkZ5ot6mto4Y~2",
|
||||
"__kduid": "Fe26.2*1*3cd08c52010926192194f496d960fe5de5c8e5cc032e2d7e64c4387bab3d76fb*UnXjxzaIfKAi3xZUqwb9EA*CuZsAJALCFVq_Rxrkmuerrn_zVom30oXnRHP7yyPsCXri34vII88QojZFS1ENFGZ-CIu9VJaTf9IIZcQNfIcBN00TNMzQnCEBBAX2dU9KqWINUG-Hf9Ar-tcFlf0t6fw*1803454465823*28a5a97252cbbd7b7a873b8a9214f3dcaf3d04387a5dc5e40611d64f9d2d154f*qZrhDoXK9O2Jzd_P83h8PgbxnaGHkXXI-4zurDpD4KY~2",
|
||||
"AMP_MKTG_26fe53b9aa": "JTdCJTdE",
|
||||
"unify_session_id": "886b5df6-9715-47af-9430-fb542a6b0877",
|
||||
"IndrXzZMQW9GSGp2XzhUdHFNVkV0blZ0YkhXVDNKRDJxNENrb05Ed1RHYmVVX3VuaWZ5X3Nlc3Npb25faWQi": "Ijg4NmI1ZGY2LTk3MTUtNDdhZi05NDMwLWZiNTQyYTZiMDg3NyI=",
|
||||
"unify_visitor_id": "9e7bc80a-4343-417a-97e1-dc3bbca73ba4",
|
||||
"IndrXzZMQW9GSGp2XzhUdHFNVkV0blZ0YkhXVDNKRDJxNENrb05Ed1RHYmVVX3VuaWZ5X3Zpc2l0b3JfaWQi": "IjllN2JjODBhLTQzNDMtNDE3YS05N2UxLWRjM2JiY2E3M2JhNCI=",
|
||||
"intercom-id-hcnpxbkh": "9b548c3f-724c-4bcd-863b-9628d4c83955",
|
||||
"intercom-device-id-hcnpxbkh": "c75b3316-4919-4f43-8683-604bcd94b94b",
|
||||
"AMP_26fe53b9aa": "JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjI1MzUyNDFkMy0yYWJlLTRjZDUtYjE5Zi03NGNjNDExNjI0MzglMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzcxOTE4NDg5MDk2JTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTc3MTkxOTAwOTAzMCUyQyUyMmxhc3RFdmVudElkJTIyJTNBMjclMkMlMjJwYWdlQ291bnRlciUyMiUzQTE1JTJDJTIyY29va2llRG9tYWluJTIyJTNBJTIyLmZyaWVuZGxpLmFpJTIyJTdE",
|
||||
"_ga_PS0FM9F67K": "GS2.1.s1771918469$o1$g1$t1771919009$j60$l0$h719163224",
|
||||
"lark_oapi_csrf_token": "auvJLG+1dphbTYkLvfoz17sgkhSURZFkOJBEzV7GHQI=",
|
||||
"open_locale": "zh-CN",
|
||||
"fg_uid": "RID2026022610260323406AD41B8AA37712D2",
|
||||
"Hm_lvt_cdb524f42f0ce19b169a8071123a4797": "1772074667",
|
||||
"_ga_ETPBRPM9ML": "GS2.2.s1772074667$o1$g0$t1772074667$j60$l0$h0",
|
||||
"Hm_Iuvt_cdb524f42f23cer9b268564v7y735ewrq2324": "dhhTNykHBjjfy8panFsJDE5AY7WdCsZf",
|
||||
"Hm_lvt_32c12acc9a2efc3fa896bb3ebcd47ee7": "1772074704",
|
||||
"ff": "ok",
|
||||
"tt": "ok",
|
||||
"cc": "ok",
|
||||
"pp": "ok",
|
||||
"tmp_addplay": "",
|
||||
"shows": "ok",
|
||||
"l_music": "59930l_end",
|
||||
"jk_addplay": "59930/1762585/42620/875689/79882/1903/642431/11417/667326/1766645/68772/37778/1595949/669484/667033/671/665180/402377/851853/1762561/367560/183636/670270/637791/878508/473312/1779060/855367/852995/829245",
|
||||
"jk_ifplay": "0",
|
||||
"visittime2": "1772074837",
|
||||
"visiturl": "https://www.9ku.com/",
|
||||
"visitref": "https://cn.bing.com/",
|
||||
"visitip2": "113.247.173.151",
|
||||
"randnumber_4": "43121e8f661547e14e11f80e4ec34174",
|
||||
"randnumber_6": "a749d45b8e84e211fb6964ceefe055a1",
|
||||
"visitcounts": "3",
|
||||
"Hm_lvt_55906d9c57011d694d405f963a90648b": "1772166931",
|
||||
"_ga_KV0VT5CMJ6": "GS2.1.s1772166930$o1$g1$t1772166966$j24$l0$h0",
|
||||
"__itrace_wid": "7695d522-55c1-4e5d-9572-e0115d9c1160",
|
||||
"indexPop": "100",
|
||||
"AWSALB": "xPwTmbfiM98lgRzwEKmv/+6o6dYQQDtt8axrGFkLlOsGjUahwzg5OR+sW7420CDzlYkQOp8PaLwqusBph3oHG5RkZs8oqQgB+AMMrzlgzOyHhBnaU9EeSiYWr4Jz",
|
||||
"AWSALBCORS": "xPwTmbfiM98lgRzwEKmv/+6o6dYQQDtt8axrGFkLlOsGjUahwzg5OR+sW7420CDzlYkQOp8PaLwqusBph3oHG5RkZs8oqQgB+AMMrzlgzOyHhBnaU9EeSiYWr4Jz",
|
||||
"_ga_FN940L7CL7": "GS2.1.s1772248741$o1$g0$t1772248756$j45$l0$h0",
|
||||
"Hm_lvt_56999c069800319574299541bbc6f466": "1772248871",
|
||||
"visitor": "{\"land\":{\"page\":\"https://www.goeasy.io/cn/demos/demos.html#helloworld\",\"time\":\"2026-2-28 11:22:20\"}}",
|
||||
"_hjSessionUser_3384062": "eyJpZCI6IjcwZDUyMDk0LTQwNTUtNWMyNi05OTg1LTAxMjg5ZTUzZTVkZCIsImNyZWF0ZWQiOjE3NzIyNDg5NDI4MTYsImV4aXN0aW5nIjp0cnVlfQ==",
|
||||
"_ga_THS53Q0L4X": "GS2.1.s1772248941$o1$g1$t1772248955$j46$l0$h0",
|
||||
"__51uvsct__KDKKSNN8zlOMtRCo": "1",
|
||||
"__51vcke__KDKKSNN8zlOMtRCo": "1e4b9fa4-9446-513a-900f-1c49b1b8b402",
|
||||
"__51vuft__KDKKSNN8zlOMtRCo": "1772249052516",
|
||||
"_pk_ref.1.ab9d": "%5B%22%22%2C%22%22%2C1772249553%2C%22https%3A%2F%2Flink.zhihu.com%2F%3Ftarget%3Dhttps%3A%2F%2Fsct.ftqq.com%2Fr%2F13568%22%5D",
|
||||
"_pk_id.1.ab9d": "e69f74b2728e37e8.1772249553.",
|
||||
"Hm_lvt_1c61e24eff639e825f5a3d7f957635c6": "1772249760",
|
||||
"Hm_lvt_37f060bd1a8957d2cd512f9c33f18bc0": "1772250061",
|
||||
"GUID": "09031086114596609179",
|
||||
"ai_session": "7Bcr+7miTihVw3UDIPwxEX|1772523863007|1772527714032",
|
||||
"nfes_isSupportWebP": "1",
|
||||
"UBT_VID": "1772263995382.8a73TiLC3ahi",
|
||||
"_bfa": "1.1772263995382.8a73TiLC3ahi.1.1772263995431.1772263995431.1.1.290510",
|
||||
"Session": "smartlinkcode=U130026&smartlinklanguage=zh&SmartLinkKeyWord=&SmartLinkQuary=&SmartLinkHost=",
|
||||
"Union": "AllianceID=4897&SID=130026&OUID=&createtime=1772263996&Expires=1772868796168",
|
||||
"MKT_CKID": "1772263996266.s7zds.w17e",
|
||||
"_jzqco": "%7C%7C%7C%7C1772263996411%7C1.215324236.1772263996254.1772263996254.1772263996255.1772263996254.1772263996255.0.0.0.1.1",
|
||||
"_RGUID": "cb4e2264-d6a5-49e0-9730-5561d30cf538",
|
||||
"Hm_lvt_e4211314613fcf074540918eb10eeecb": "1772263995",
|
||||
"XSRF-TOKEN": "05be7a43-508c-44d5-81d4-013704287875",
|
||||
"_xl": "eyJraWQiOiJ4aW5saXUiLCJhbGciOiJSUzI1NiJ9..hkw_M3Wgeib6In7eXdc0orwfuPQ7fP56_-H2r9Xo254gKDTfXt0MoNUYtktUFzNPrvkqUAEy6mNt7E8Z0wRxOGZgaP9KQQdwVyrIphXspPFEJ4Z9wBwclMeWT6a_pgzzN3H3iJdXeMwuuYHH17wJCFEZiyu3wdWkY0lvsGjV-qwcpFgf3xx2V_HHdhE8LvE8YbfElzdyA36GeR9mIrDmqyWHZ9gpBuVkDYJjgGRGYgxjX67D0fBXsNPkf7CMv11sKlv-yluE4pKAw_7QSK8lo-WsRO8UXTNbhlH7lblozTPoxLbzNJivJbV9v3KGohqJDQ7x16bvtklQrkhesiP0aQ",
|
||||
"JSESSIONID": "12FBD8D50E5BAC743A166886FF6E4A96",
|
||||
"NEXT_LOCALE": "zh",
|
||||
"MSPBack": "0",
|
||||
"MSPRequ": "id=N<=1772526887&co=0",
|
||||
"uaid": "def57711563944a78c34900e302402be",
|
||||
"OParams": "13O.Dotx9!*m3GaPQmP8HqIq2kQt0zm9a4QIGhI7aTo*t20sD!wDuqmZs52MaRc7UGymYs0ymhsqP4ORjvCgKy5O!4qEF*EDz54flFmpkKxqvy5FKJ3XcltlmeEmp5sOyBU3DGYCU0SGULt9daH2Nta*Ys5OXGBSKc2D3mwmAXcyNApLNzSxygZUkrfR*vXjMOrWnj0f5sR!zez7PuNskZwfgZ82VPTjwBHBosnr*n3AK6LRVxEN4qaiB7TkLCiMFM686dD3TP*OJxBLru1yg89nyFCc3iU!AMTHTrgVvRijdVu8fFZlEaqMMffxestIAiQh0Z1Aoexplh2rM2Khq4pCvwkKJM0K9RfawRsirtdURwgfCRVkKiai2nJToSbrM5eXU!gM59UnQKOpgPNc8ft!y9jteFeCle0jUQV3G9uXD2Irh39maJkiRScb6CpGCLCWE0pb8jxuxUEUWb0AS2Ou6yx!q9kDWf6t9HuZYfx2r2tfCAPzGl!GTx1rpZ1mACcIwnFR2GoyMqYs!gN0e189l!7BxhLxyNsdq74q8!9PbmoKB4eT9KqLOlSQdkKqoEBvkBhPfGn3Eoi3aW4Hu0zrB8KsKKAIiieZ5YZfOORYaiVnZ6ZtJRS9zgwxDVz1VIxgeKLkAYwj8OX2WOn8ZXar1TLXbEzbYD7RBvTys6wKoLiO9uss32h76nZfrCRNCK3LfR0hxdvoXUsp!ZdhySpi2mCMkSDf9ePd*!aYcVN00mZ*Gd02r8gU63eXEmOeM37LpiShTO11iKec8X95XA6OYyhviDymKY!mEs*838Sr!0*BshOBUqSiJ2YQDQPn*QQ8b63JkSq2wRHTYcsk2EKgUYbGCzs5tnEUyBIK5HvWIcj9bW8S2QQGLoRQkzN28aSOL8vEXMFh!VGtx138fAX9SuHrLSY880UpWUMMWXUxULxtPplbmY1!mbzviFZq5XDOs5nzKzsq7OlxaK2Ooat0l9rXJ0aQGAHRqh4P20nmsBXtfqwKTobcTMmneuhj3x*iAUhe2d7UFWCzG!Jhwafzgrhzy8MxODYP0k1Kgi*F9fDk8R1BQMScYqDIn9KK0hYxQcc4FHBET0xQs6OZqkvcIpserqy3Eto*RnOeyVF*Pk7FNq1mYnWzfZHg6B3tEveDrlofJcBSGAep5rNbXMh6w5BrSKHJHEhyWdKR9KVsAcqabi4SVvK7XSsIUePSXqTq7tVbt3HVn1Af0V1EGWFeF91Ln9Lkr3oJ5sMCDC2kS0CXxAUGNmXUHx0F6qZ9Qf6SPJ1rRLWiXXnHgaMWQ6Oj6HSX1qm4Xt7!AvcwLTyRRXClMp9gHpRANs*dMTUl3VhOdDQ*OQotyR2iieBDqmHprSxXJB8vArEHGL9AhhQusRxk8Hh!TzbYqJwn10fgIr5XRfYcdzQw5LfLljBoZMTP0ZToQMroGXvuJ*0oRPqkilsL64qhDGPeHFb4AGkhpPYcQWnfx6kKK*lXdzOVyzlhE8eZc7Vpvy5OTFQdhHH0tLPgQmBZUn6z8eIVr08QZS0xA69ZeB41O27olofWyeBkWZGv0G3vta2P9mj4T3kWqyiZrb95IVr!d9cS4F1Wc7Z*7tIqkqKE88VcokCGPyodl4!JfR27zy8lsR!tNeIy8ezz46YCnHGh3h30scUt3zJxaLST2SBlMvBT!y!Kq08Ys6wxXjGSITTlEK0KkhXR!0AyADI93B7mwUgNwSbArP8R6DYA63JkTfrfl2MEdhvVeMOAESe7aD3rp!Rm1nm6kVGFQBFtHxZAX2F3ezo56NgFyz2IJG3ewJs1CTaFO8rFpkdMyroeKLyFGHIYVSDh47U2R1lslFhm2PwJP1c!UAM2EcQ5pVB8PZJiQAkP1hDZtuQGlMeOgFoL61yxQwxz*VIfTx*k3GoN0KVoxAJeZPwiLOKYpelTfk2VJjJ*U!uk44ewgHdBfdT!hje5kiOuwOLU3tNL7Ous5qW!8i9TcEbvWYxmxWPhe44Dx6GqF8mnNTT2MRLWJXPUcZWVWs5nKyK3ffk!wJbGNM8pl3*L9ggtPxYNgKHlACUVE0MghVUYD0gJELvtMcl2R8SFeFIkj!!bD69mnzjH2i2SjFYtNAuzNaUB5u*lgo4rY0Hwa4bJRjCvlXciuRDKBn*183rAD13Qa0OMami0Vju940rdmY61dQFC8DHaDFlKgAtqL1POOMYewY4I4YeJNjb0L3Sj3Pt9yx85M6elY3Y7jeH16wkRl9c9yQeShUETmi8o0glSc6YA*ET*6*8It!W7J*uFfxEkD9X9Q0Vbd5FeafJVu8tBAhgUDlYbY*2uM7EDduV1o2IS72*zraWoHTVr3541st!fQS1v!6sa0!AzmX8i1A*fRBpbKjTXrku0DvBb!0!jfGkltKScpB2Py5SEmKyzmBBHXGNC2zIbAZVNNwtnbOU5hv069Xqg9k1!6VzWh8GRbsW8vw0BXSv7MnHkFZcF36iKdmHXDIFlyJw4wOPs2WqPnbYoC39vp3KJpZKl0Nfc4lKTfSKUQ!FZzmqe3ItQ3tgyAI8fZer6OoCrt1*jarKT32ObP2YrcKSeLJfXC3awYmqhwnOwBuFZ1Fz50KEddnI0agQACZtQyYdF82qEXB3zjuZvVnMNG2O3iiNGegcNnOyPFWcrDPeniu9x*hQPX!FFqd3Oo1BbHWldhTtG8DgnOP9GE0GQRdm*YYRffM2zmjzMiAmO0j3IGWneFsoVBH3t9HFMCea5bKzmCS29x3Jdbw2xmdPQraHLg8ns3cFPCJBhVCOQMkvUsBvNmUZY58dZKJTQE2KMsh1VRrhNZcc5IDX!fUd9yA5h*JpAXh*R6UVa5LtSG*5eNvNeXMSL!W6YSXJlPtDJ*bmEMAA5gQ89d3gqMsNmhuVGgL3BpG0XAllzU1G25ZaMt78emBvnWfwoSHWRmbUMjptmSLvrvyLy1mgx2eyH2oGOtxdbj0xw3yaJzs8f5r3f3UTZrQ!etnZF7oBww8UOXvK2JEfrruR5lPCZwP4sP1fzQwdQwcOQaZj*AuUlXd4Ds39709hdAYeW4hCjAKLsv70Z0UCq1AXdkX*5Muk1lW*isLYhAwGLyzWpdOlxupwEDWHHHr5OtpZMsu35fAtuqHwG*U9ZXvDAJG2bxYS2TTB9ijjiRBPChOd92OXEloh2VIxWNn4wi7lN3sAO*N56KD5cbxSRGcP8g*HLB026!IxUn6yKxWYgcjm9!bWBJSIq!8cM4sYgnPr5AfkdcSSZKWKJQhQ6!xbPd*Yrn*dGCGYf8S2bPRC0ylDXji72eLkQJZ81bocCQwsDCkVOCGMmPCJ048UZf7f*zphrsXNGdt71p9Adobz7l4TzjqjkRHlrN2z*D!zCugCaF8cOW9vDIMfG8u0lM7M6VDVKLWVhnKwu30y!vDtfzV!dcNwx0UtxkJ2*iUFiV1JQLajaATz!cDHdZj0N36ba8Lo89Eum1xMNgUBnw3tPy2SzSFDrncjxE0!cVYOSdfid!1O6iClBnjtB26xBGXhwDCZrX6thTJrkve!kEaFMDgxCz7fakPtQ4lzS7gZlyNQ7GH4BJ5zsXb0GQG5Wb*jQuXQERgag1F1G6iy6sIXpB5uJek3WzOa0gz3jp1Dq40*Ge40RXIx8urkrKD5FxI2YYLGpHYd0Jii4VM4OrQtsULmhQn1!VGk22vPDgrbAZR0TR7byqCa5GavSOD2yv4RaljWtmZ3n8BpTr0MS7ZTPJXK!dQ*FlnZ*JOxncmesNpcTLlC4tSzIY02rAjZHX9T86X5bbEqG!VcU3FYP5x7rViy7vxZ50Ld87ZBkqsIAciuwhOSmb*PS1PTADAQ8CJwslrQ*4RRei84e0bGX7lyBpeHd9Dv!W8U2u!ugTsrV4NoXf8wDuYoCfyoY6BaRsY3bIhEogutp89Vc*pGU!Tq0le",
|
||||
"OParams1": "OoJXAIS83mb8vfSGrKd1EKSo3nt5DKybibO02uf1lpdfu0PDE*n7sP7NUWcBXv6utI7Rdj1kNQgQrvxkscbAp3LSN88*TwkRdlxpspo4GaBEepwj6l!tElXrV0K5nyOP!JnfFEuWqw8WHDy4UVJU8TRsgf*cTCqguJgzN62ofbD8MzV1iPCNaDogtIBHzIp3CjRXY*ZCQ1vDwGv1Vc05FsOFxPtf9bH*tiJt2b!wB*TXEebqreWacnvrsr99xszA7bhEimiv6QxG1QUyKFqaT4TkQ3CdgapU28J!rwHrNB24RAxf1LuwpWZcWbVNYsegb1230hirNHhB*sBXTTXrnDi0Q9iSb3VTm32DpNsyKzm3Vigr2ckMprDkn4B6uyG1I88olGfdMjfc8NZYVvHbApkbbz2xssfkgtBR5J3I!3mu6xI2d*Wu6qMvJBH*SKANUIcho4Fv6qmoEt!i2lXXZQogtbUCb6XhcQqNRBlhqn86LvEefM3uoxbwT04FRHZizLQicccwk3Xw9YNahB9hc8kTceibBq!BALYNh*914HRHFr0aUPPOUhYUnnnN9swIOhtqaPCsXJT8ZKSWVtHba!NEjBJ9ejd5MdV8sPcQcxkMS9SvOkyuASKR*NAz6Ct6x9gwpZ55oxLK*NWZKELG066JR2QXUbkTZLkg6DTv52WMto6Tkq3NvCvGvATy7FBgUrcrZ2VS5EUH4u2sTDwmV3Dzez8O*FN9ndJSMZPodRo0Cf0AoTY1aV0YAgYcgamYYwPsVyoJI7RUpZ1svrsp8Jmjfnd!FQ3aGsnYJWqZ5uKrn7Ku7wU7jZc18eqBYVxlil6mvXgPkWbHpVDhACNFdaB2JjUmzxC5zBhh2tj6GeNDFX9ZKrQKKDGrWs!lRiNxUq97Tad4U!RgOFGjd5LpOvQIcNM1W9!gka3jY24!33qT0TOP98QAQ1K8hHSRqy4juBeetOnOSTAeyU59QmtTpdq7UU*0ZP!lPzbJFE1VE!RftwdiN7K86MNTNYYR9jY*6wLwp7UAjwdzD5P3X*llC8s*ki3YK5hKJMzi2U*eXx7Qtz4bu!bIjPqSi1cCwT5yPsGF0m8y5MLGflixA35LVq5cgRRPc13dcAuXfuI7bB4rl0I1aUDC85*hgEL4Yipx8YUPodyiSiAWhC9y4FKeBc8TI73uFb4G78JbmSOmo3exgMgYJ6Cy5tQcu6k3*jL7VSzxREYtSYbnFqcDyUi7BYCcm8EOe7p*BrSq!Gq2VxwtTeJgj01BCfu5djbgu1n!O24r3Q5oa6Ji67teUYqjPi9oUUwcB*4RhS8LFPlmHliSSRh2twfl!JYZDsQb8qyXPxUwpRDclRe35X1a4NAWeVbgeAfXb!BnG7xvLFM9f9!G0JkCMuODSUaWu!cJR13ISd4eKQdi1pZYJPWLfReBvHwdjw9ql!W5CyAydWarqbVpJeD718TkQDT!2i9mHFG8769Y96AQiaRjgHo2A6HWGWSKL!lLMhGMezNK3VkVLhArhzWHFPzDgR6LpFatszbs6NBuTU!eBbWqpRoIWckpuEWtku02eiw!OnO64he9qK!*3KyzoObCVEjmvS9JCFxZidTuscRmSwoLiNa8PR50OHUtdj4azSiwq4mm!ruf5Yx0oN5q0FTDLZz*1xe6Bf2yX7vJKChEHy5qruNGdc!bAOfWhJ64O0g6Ls3bgbp1Nc07xAnA8RcxyrFVnazn*2VtUGRTVOedG2VJC9rvlFXU5oKUIPeKbvpOQWrhVrrn7kCrBOmDxf1gFokwydrrwQ73hJem1cli4QerNHg!WkM5bCcEN6jxBXUN67ey!f2sqBs!5*tYiwPDfF5UQAUZ8*RnEFmBQa!RZWVv2vQTwfR*XYXwag1YDT!9a2MB0vuI2Y*qCeBecLUqU1mjyPR1QOQHZ5*wQ11LR1wvLVSiFmjrBPLl6g58Jv8kf3rtzmF7baWY4Stiyltq1pl8gitGncXJy1v5U!KnhmtEaXbNfIsTti6aVQZnCqNTRQOnijBi1pu9sJrwV61o!J!WfaFd3AF5314i*n1WoWvhGay*gsYzOIOhJlKWnpvk9wBD4V4yA9cO!vYxj65eEmN7uptU7ARcgKGZVUGrXHFjT2tJLzhC7dpDG8sDdTb4I8a3QvFUwWptiJ7Hd3P*cRmUTdpCcH!H26T58pJWiPL1pgDsVUahVqGr0R3jDTbY9OKu!ZI9*hq2jIoVfVcYfndlEDPBDIy0bnozRTCt*crR6xYdwUlo5yGq1DWozFyCXSjGAUNw743rUqPGdoJg!QwdtgNLlWcIiUvqzE0lXshqj*JH0*sF7Ds*nTccWt!L9i08FTMTURwkYEx**orzl4gvHn74nAYHT9RuAT6qNqWp4AmlSPSZPkSv2Rb!KtdBO*nmxvpH109QCuoLHF3wSiHXN7ODU4dubzA7aRyDuWvSzhHr4TAwWFd8DtXSW*2IJZAmHKFnVmP*NNTMcvRWbbnBfxVnfLrNcMbTH*heUIUEkw23bxYnAFhEw!4vicTvcjzzpqtJIGGOY9kDZ6ArITpsMj3CDAsp6Yzmn5iqwfzRgSOcqBHz0oXcLm!tG9!GKKF2zHSuGwS7DGQh9rB7OOPjtnSlks20nMhcSM3Ipi65OjRbSAHrYyVG5871HnVlpjHPucgFXYSMJX8ppOPzz9e!Cp2TXNcRkHFuhPWOP1o!wdo*Yg9DBGt0j4VpeYMG8cQs8hFFflanwUD*Oa*JP8sO86S8Mg5eqF37SeDSnzNHTRk1!M9gnOmn4!ejIEeHcfTXHW9aU4mg55voqhJ0h4ctZ6w3W7ph7CWPINiw2AsVpmDAsB5AzWV8FHWRsuI0MCxoOhsy49MJUmFfyAfrepRK1SBLkLU8Ko1zWFsPQWq9lDJF553CY1zEkMdKhIwpM55oFOtTf8E8TX8sXDlpbVLesLv4PGlAU1ETmyGpx5JYztaFc42*SShZ*hTU*4458FdCkVzmac!yT920!v5sl!UyjsJbuhdIEgMGDych2aiy7OSoaUg5galMH21P9l9q5wl6sYow2q0gcxv9RaaKytVE2Y5F5iZgBRZ9L6FVJEKMw2*T4Y7qxMYm3AJg7BFzbTse9sjIEu3!aRf*WdyPp6pvq*uMi6YE!OmJnO2BPIpNelPmTC5icbsUyY4o8tnPxL133IK40UI!nnlaltJs17emj2zj!rxqSpfTKMDn*!091QyCMZIC5uPr2OGJxU6oxs0goHDcRgsH!btwOWzab4fZ1PXhCYLLF25ST0JcEw1pQXpIqL1yJSDGnRrBzplqwVk9p3VSCofEHaaPH2kBnMhpH2bhmWEkFvEWjcn*KceMKv8GmmpGpMoF*qerl*xrz2KzcJMwRvUzqRBfUvUu3sJngyngfKQxd7xH6ks3SwVufdC1Dz8W9aPRHatPM4wYL59RENMmUfmFWHaJ2*YiyrMXZFBsbS5OFNIQWUCwDWlaMeHt0VOZGyATT4KGp!q51UKVDqBjQFGf0zHGtinXp1j6WnOUeuqXQMn21HgJdJVhDxSekOv8kkwTLoIYKszjlNmhamXjW*Dsfp5B0SUsXMaEu9c2gf*EGTj7OMRE4Zh9IHO9b6aXS7nXQnm5bMViK7kiXA!spZOqUQiUxLEkEP980Z0pm72XTgvf2MEYcALC*4oLCHt6INoPTnrUJ1XgNq5UThEapy*D82WDGcZWQQN0c6hmr!BsJ7QFjD5Ln0!a8Ouxs2qRjsyZZSpWyze31CygtA7gOWU1fu8uLmxuDHbPTjBaQU6MFIrTQVmdXkPmFUwv5eDvGCpOePZZUMuwhReSy7lA2ypgCQjUs4yAPBpqEK*11!FruoE32AihrbPxrbrIgCHZOSB3BZ1ns4YidpCwpXiKtx!2Zv6dTyiQ458cMEOrLh6ZMKIiDaEzj00JQ4*7uIVsl47mey",
|
||||
"OParams2": "tZcpQiVGKXWVSiQLDvC4gbnz9!wcVrfwTxavgn9vKG7GO5qIkoT*Q4W47CHxgAqdk7yBhGH9VIfIy7t9izEJjjlxrqzr4WaNg6Lg03tBYLuu75YaIZxuINlwJlPhu9D*tG5k2FOi405kgxat5kT3StRcXIghB!lpxgh6hxE7rcmJy1fmd1avN9JENZWCKWiWXaTATsDecw2V5x64U*tvnb5zgUN!PNdahwqMU5CSudcM!nBLWJV959xleJNQj6InVLPMQFXI0BXMSNx506i9Bv18iCXLjVqABIkCUJZckrLqKY7GYrUby2Tu1iM0Knuc1e*Ukkh7Frrfd0KGiACFKBxmopykEO41QxivIneX!usyUMIb*HXAwP1KOA6!cDWP70TYmTIBf1gpX3mbpkQX!FFG5u9fkRinYdBbl1BrssVdk44Z!LiXze!X!NJGRpWIUa!wwk0jbo9KOOsT8RR4wnaamXr6!OqrKm0NcLxVpvz1zjOjNfducf8uxgLtC8wyZUUlRVLakzhqg*zar65WEXoT0RoIzfGiGyFG!*hDMKhrXRj4JyVfc27U*VtHjzLoHgv5c6qy!!VZOFIVA3jK9DM*DtsVj*VujgEFbXo$",
|
||||
"Hm_lvt_4997a0478fc35028d97257d292220a55": "1772250025,1772417593",
|
||||
"Hm_lpvt_4997a0478fc35028d97257d292220a55": "1772442951",
|
||||
"TwoNavSID": "v70l7vpjckfm9vi5c16dmg9h2l",
|
||||
"busuanziId": "CF025D3B30A040F0BA3B8CBB96009F95",
|
||||
"_ga_NZS63XNSQ3": "GS2.2.s1772439515$o1$g0$t1772439515$j60$l0$h0",
|
||||
"csrf_session_id": "46e069106ae10424c0c096a59e966b75",
|
||||
"_tea_utm_cache_2608": "undefined",
|
||||
"__tea_cookie_tokens_2608": "%257B%2522web_id%2522%253A%25227612570385029416467%2522%252C%2522user_unique_id%2522%253A%25227612570385029416467%2522%252C%2522timestamp%2522%253A1772439686567%257D",
|
||||
"_tea_utm_cache_576092": "undefined",
|
||||
"esctx-knNKgYte2C0": "AQABCQEAAACvnsHKEvvRQb3Bz3Qc7wnaRXZvU3RzQXJ0aWZhY3RzDQAAAAAASjN86-z8MBzeq8rCBQ2XrIyMPo4maECVLY_MGVUdjkhQiGHksCzY7cfjFglVYxDZvziOdCdpFlpW2O1BphEmwR2Xfima5AaV6yZES1hgqNHeIc0jnqk6_L47to4MC2NxCszFWTT9QAn1QETNeGjnnCAA",
|
||||
"esctx-AQ9ZgG77fjI": "AQABCQEAAACvnsHKEvvRQb3Bz3Qc7wnaRXZvU3RzQXJ0aWZhY3RzDQAAAAAAXgWakzRhFwdowzLGVMmx4KiIYcC8vA6ELgc76_imeBZiCYs-amVAzbjbNjmBxIa0G8jrRc3FnGtuxY1Igkd9REquHIXPI8yP7Cun1JExt6dFS8T2BXJ-scg2bB7hGY2Mde3ZPFyQS1IzGzOjSGEEMSAA",
|
||||
"esctx-huMMKF5yQZY": "AQABCQEAAACvnsHKEvvRQb3Bz3Qc7wnaRXZvU3RzQXJ0aWZhY3RzDQAAAAAAtJyj34WAIr2BMDeM4OziQmEXMIxPcEwDYLG2yK_i_A-g0V6R64RYZ_optVQsI-uBkiaM1vhZDvYLJR7nurHmPTwiQCyXx7Mrufm-6GarNbrPbo-DgHCbsApHTifL54nvqBsvgzpOVPE3kxhTKGDlviAA",
|
||||
"SM": "C",
|
||||
"CLID": "a4be271320f84392a93956654a90f203.20260122.20270303",
|
||||
"tabmode": "1",
|
||||
"oaLoginType": "1",
|
||||
"Hm_lvt_729f47c3cdeabd3b5fc5b99e1722612f": "1772524794",
|
||||
"Hm_lpvt_729f47c3cdeabd3b5fc5b99e1722612f": "1772524794",
|
||||
"userType": "0",
|
||||
"user": "0"
|
||||
}
|
||||
],
|
||||
"测试用户": [],
|
||||
"用户B": [
|
||||
{
|
||||
"_C_Auth": "",
|
||||
"__rubyUX": "false",
|
||||
"pglt-edgeChromium-dhp": "2083",
|
||||
"__aegis_uid": "15657f0000015c36-b995def7eda2097c-6741",
|
||||
"xm_pcache": "13102661032344000&V2@6666oe7RRKuia7PURhf4LAAA@0",
|
||||
"ANONCHK": "0",
|
||||
"MUID": "15CB8BCF863F643B03449CDE8778658F",
|
||||
"_C_ETH": "1",
|
||||
"USRLOC": "",
|
||||
"MUIDB": "1A5B63D3433163DF0E4F74C24203623A",
|
||||
"_EDGE_S": "\"F=1\"",
|
||||
"_EDGE_V": "1",
|
||||
"MicrosoftApplicationsTelemetryDeviceId": "da0bf04e-2115-4952-a012-fc29b4954ec0",
|
||||
"ai_session": "7Bcr+7miTihVw3UDIPwxEX|1772523863007|1772527762453",
|
||||
"msaoptout": "0",
|
||||
"OptanonConsent": "isGpcEnabled=0&datestamp=Tue+Mar+03+2026+16%3A49%3A24+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202501.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=3599d387-f02a-409c-910d-0a6caea03c05&interactionCount=0&isAnonUser=1&landingPath=https%3A%2F%2Fntp.msn.cn%2Fedge%2Fntp%3Flocale%3Dzh-CN%26title%3D%25E6%2596%25B0%25E5%25BB%25BA%25E6%25A0%2587%25E7%25AD%25BE%25E9%25A1%25B5%26dsp%3D1%26sp%3D%25E5%25BF%2585%25E5%25BA%2594%26feed_dis%3Dpeek%26en_widget_reg%3Dfalse%26startpage%3D1%26PC%3DU531&groups=C0001%3A1%2CC0002%3A0%2CC0004%3A0%2CC0008%3A0%2CV2STACK42%3A0",
|
||||
"v1": "6]miEm#2q$>NJmmfU/ln"
|
||||
"name": "fnos-token",
|
||||
"value": "sxRTKZf7p2lA4txCiYB1dvB0xT+sVmDkrmxaX3L61a4=",
|
||||
"domain": "192.168.8.156"
|
||||
}
|
||||
]
|
||||
}
|
||||
-992
File diff suppressed because one or more lines are too long
@@ -1,394 +0,0 @@
|
||||
"""
|
||||
MoviePilot Cookie功能示例程序
|
||||
从CookieCloud下载数据并注入浏览器访问网站
|
||||
"""
|
||||
|
||||
import json
|
||||
import time
|
||||
import hashlib
|
||||
import base64
|
||||
from typing import Dict, List, Optional, Tuple
|
||||
from dataclasses import dataclass
|
||||
import urllib.request
|
||||
import urllib.error
|
||||
from Crypto.Cipher import AES
|
||||
|
||||
|
||||
@dataclass
|
||||
class CookieCloudConfig:
|
||||
"""CookieCloud配置"""
|
||||
server: str
|
||||
username: str
|
||||
password: str
|
||||
timeout: int = 30
|
||||
|
||||
|
||||
class CookieCloudDownloader:
|
||||
"""从CookieCloud服务器下载cookie数据"""
|
||||
|
||||
def __init__(self, config: CookieCloudConfig):
|
||||
self.config = config
|
||||
|
||||
def _get_crypt_key(self) -> bytes:
|
||||
combined_string = f"{self.config.username}-{self.config.password}"
|
||||
return hashlib.md5(combined_string.encode('utf-8')).hexdigest()[:16].encode("utf-8")
|
||||
|
||||
def _bytes_to_key(self, data: bytes, salt: bytes, output: int = 48) -> bytes:
|
||||
assert len(salt) == 8, len(salt)
|
||||
data += salt
|
||||
key = hashlib.md5(data).digest()
|
||||
final_key = key
|
||||
while len(final_key) < output:
|
||||
key = hashlib.md5(key + data).digest()
|
||||
final_key += key
|
||||
return final_key[:output]
|
||||
|
||||
def _decrypt(self, encrypted: str, passphrase: bytes) -> bytes:
|
||||
encrypted_bytes = base64.b64decode(encrypted)
|
||||
assert encrypted_bytes.startswith(b"Salted__"), "Invalid encrypted data format"
|
||||
salt = encrypted_bytes[8:16]
|
||||
key_iv = self._bytes_to_key(passphrase, salt, 32 + 16)
|
||||
key = key_iv[:32]
|
||||
iv = key_iv[32:]
|
||||
aes = AES.new(key, AES.MODE_CBC, iv)
|
||||
decrypted_padded = aes.decrypt(encrypted_bytes[16:])
|
||||
padding_length = decrypted_padded[-1]
|
||||
if isinstance(padding_length, str):
|
||||
padding_length = ord(padding_length)
|
||||
return decrypted_padded[:-padding_length]
|
||||
|
||||
def _get_url_domain(self, domain: str) -> str:
|
||||
if not domain:
|
||||
return ""
|
||||
domain = domain.lstrip('.')
|
||||
if ":" in domain:
|
||||
domain = domain.split(":")[0]
|
||||
parts = domain.split(".")
|
||||
if all(part.isdigit() for part in parts):
|
||||
return domain
|
||||
if len(parts) >= 2:
|
||||
return ".".join(parts[-2:])
|
||||
return domain
|
||||
|
||||
def download_all(self) -> Tuple[Optional[Dict], str]:
|
||||
"""下载所有cookie和local storage数据"""
|
||||
try:
|
||||
url = f"{self.config.server}/get/{self.config.username}"
|
||||
request = urllib.request.Request(
|
||||
url,
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'User-Agent': 'MoviePilot-Cookie-Client/1.0'
|
||||
},
|
||||
method='GET'
|
||||
)
|
||||
|
||||
response = urllib.request.urlopen(request, timeout=self.config.timeout)
|
||||
|
||||
if response.status != 200:
|
||||
return None, f"服务器返回错误状态码: {response.status}"
|
||||
|
||||
result = json.loads(response.read().decode('utf-8'))
|
||||
|
||||
if not result:
|
||||
return None, "服务器返回数据为空"
|
||||
|
||||
encrypted = result.get("encrypted")
|
||||
if not encrypted:
|
||||
return None, "未获取到cookie密文"
|
||||
|
||||
crypt_key = self._get_crypt_key()
|
||||
try:
|
||||
decrypted_data = self._decrypt(encrypted, crypt_key)
|
||||
result = json.loads(decrypted_data.decode("utf-8"))
|
||||
except Exception as e:
|
||||
return None, f"cookie解密失败: {str(e)}"
|
||||
|
||||
if not result:
|
||||
return None, "cookie解密为空"
|
||||
|
||||
cookie_data = result.get("cookie_data", {})
|
||||
local_storage_data = result.get("local_storage_data", {})
|
||||
|
||||
total_cookies = sum(len(v) for v in cookie_data.values())
|
||||
total_ls = sum(len(v) for v in local_storage_data.values())
|
||||
print(f" 下载完成: {len(cookie_data)} 个域名的Cookie({total_cookies}个), {len(local_storage_data)} 个域名的Local Storage({total_ls}个)")
|
||||
|
||||
return {"cookies": cookie_data, "local_storage": local_storage_data}, ""
|
||||
|
||||
except urllib.error.HTTPError as e:
|
||||
if e.code == 401:
|
||||
return None, "认证失败,请检查用户名和密码"
|
||||
else:
|
||||
return None, f"HTTP错误: {e.code} {e.reason}"
|
||||
except urllib.error.URLError as e:
|
||||
return None, f"网络连接失败: {e.reason}"
|
||||
except Exception as e:
|
||||
return None, f"下载失败: {str(e)}"
|
||||
|
||||
|
||||
class BrowserController:
|
||||
"""使用Playwright控制浏览器"""
|
||||
|
||||
def __init__(self, headless: bool = False, use_edge: bool = False):
|
||||
self.headless = headless
|
||||
self.use_edge = use_edge
|
||||
self.browser = None
|
||||
self.context = None
|
||||
self.page = None
|
||||
self.playwright = None
|
||||
|
||||
def start(self) -> bool:
|
||||
try:
|
||||
from playwright.sync_api import sync_playwright
|
||||
|
||||
self.playwright = sync_playwright().start()
|
||||
|
||||
if self.use_edge:
|
||||
self.browser = self.playwright.chromium.launch(
|
||||
channel="msedge",
|
||||
headless=self.headless,
|
||||
args=['--disable-blink-features=AutomationControlled', '--disable-dev-shm-usage', '--no-sandbox']
|
||||
)
|
||||
else:
|
||||
self.browser = self.playwright.chromium.launch(
|
||||
headless=self.headless,
|
||||
args=['--disable-blink-features=AutomationControlled', '--disable-dev-shm-usage', '--no-sandbox']
|
||||
)
|
||||
|
||||
self.context = self.browser.new_context(
|
||||
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
|
||||
)
|
||||
|
||||
self.page = self.context.new_page()
|
||||
|
||||
print(f"✓ 浏览器启动成功 ({'Edge' if self.use_edge else 'Chromium'})")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ 浏览器启动失败: {str(e)}")
|
||||
return False
|
||||
|
||||
def inject_cookies(self, cookies: Dict):
|
||||
"""注入cookie到浏览器"""
|
||||
if not self.context or not cookies:
|
||||
return
|
||||
|
||||
try:
|
||||
playwright_cookies = []
|
||||
for domain_key, cookie_list in cookies.items():
|
||||
for cookie in cookie_list:
|
||||
cookie_domain = cookie.get("domain", "").lstrip('.')
|
||||
if not cookie_domain:
|
||||
cookie_domain = domain_key.lstrip('.')
|
||||
|
||||
pw_cookie = {
|
||||
"name": cookie.get("name", ""),
|
||||
"value": cookie.get("value", ""),
|
||||
"domain": cookie_domain,
|
||||
"path": cookie.get("path", "/"),
|
||||
}
|
||||
if cookie.get("secure"):
|
||||
pw_cookie["secure"] = True
|
||||
if cookie.get("httpOnly"):
|
||||
pw_cookie["httpOnly"] = True
|
||||
if cookie.get("expirationDate"):
|
||||
pw_cookie["expires"] = int(cookie.get("expirationDate"))
|
||||
playwright_cookies.append(pw_cookie)
|
||||
|
||||
self.context.add_cookies(playwright_cookies)
|
||||
print(f"✓ Cookie注入成功 ({len(playwright_cookies)} 个)")
|
||||
except Exception as e:
|
||||
print(f"✗ Cookie注入失败: {str(e)}")
|
||||
|
||||
def navigate(self, url: str, wait_time: int = 5, timeout: int = 60) -> bool:
|
||||
if not self.page:
|
||||
return False
|
||||
|
||||
try:
|
||||
print(f"正在访问: {url}")
|
||||
|
||||
self.page.goto(url, timeout=timeout * 1000)
|
||||
|
||||
try:
|
||||
self.page.wait_for_load_state("networkidle", timeout=timeout * 1000)
|
||||
except Exception:
|
||||
print(" networkidle超时,尝试load状态...")
|
||||
try:
|
||||
self.page.wait_for_load_state("load", timeout=30000)
|
||||
except Exception:
|
||||
print(" load超时,尝试domcontentloaded状态...")
|
||||
self.page.wait_for_load_state("domcontentloaded", timeout=10000)
|
||||
|
||||
time.sleep(wait_time)
|
||||
|
||||
print(f"✓ 页面加载完成")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ 页面访问失败: {str(e)}")
|
||||
return False
|
||||
|
||||
def check_login_status(self, login_indicator: str) -> bool:
|
||||
if not self.page:
|
||||
return False
|
||||
|
||||
try:
|
||||
html_content = self.page.content()
|
||||
|
||||
if login_indicator:
|
||||
if login_indicator in html_content:
|
||||
print(f"✓ 检测到登录指示器: {login_indicator}")
|
||||
return True
|
||||
else:
|
||||
print(f"✗ 未检测到登录指示器: {login_indicator}")
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ 登录状态检查失败: {str(e)}")
|
||||
return False
|
||||
|
||||
def take_screenshot(self, filepath: str):
|
||||
if not self.page:
|
||||
return
|
||||
|
||||
try:
|
||||
self.page.screenshot(path=filepath)
|
||||
print(f"✓ 截图已保存: {filepath}")
|
||||
except Exception as e:
|
||||
print(f"✗ 截图失败: {str(e)}")
|
||||
|
||||
def close(self):
|
||||
try:
|
||||
if self.browser:
|
||||
self.browser.close()
|
||||
|
||||
if self.playwright:
|
||||
self.playwright.stop()
|
||||
|
||||
print("✓ 浏览器已关闭")
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ 关闭浏览器失败: {str(e)}")
|
||||
|
||||
|
||||
class CookieDemo:
|
||||
"""Cookie功能示例"""
|
||||
|
||||
def __init__(self, cookiecloud_config: CookieCloudConfig):
|
||||
self.downloader = CookieCloudDownloader(cookiecloud_config)
|
||||
self.browser = None
|
||||
|
||||
def run_sites(self, sites: list, headless: bool = False, use_edge: bool = False):
|
||||
"""下载一次数据,依次访问多个网站"""
|
||||
# 下载数据
|
||||
print("=" * 60)
|
||||
print("从CookieCloud下载数据")
|
||||
print("=" * 60)
|
||||
|
||||
data, error = self.downloader.download_all()
|
||||
|
||||
if error:
|
||||
print(f"✗ 数据下载失败: {error}")
|
||||
return
|
||||
|
||||
# 启动浏览器
|
||||
print(f"\n启动浏览器")
|
||||
print("-" * 60)
|
||||
|
||||
self.browser = BrowserController(headless=headless, use_edge=use_edge)
|
||||
|
||||
if not self.browser.start():
|
||||
return
|
||||
|
||||
# 注入所有cookie
|
||||
if data and data.get("cookies"):
|
||||
print(f"\n注入所有cookie到浏览器")
|
||||
print("-" * 60)
|
||||
self.browser.inject_cookies(data["cookies"])
|
||||
|
||||
# 依次访问每个网站
|
||||
for idx, site in enumerate(sites, 1):
|
||||
print(f"\n\n{'=' * 60}")
|
||||
print(f"访问网站 {idx}/{len(sites)}: {site['name']}")
|
||||
print(f"URL: {site['url']}")
|
||||
print("=" * 60)
|
||||
|
||||
if not self.browser.navigate(site['url']):
|
||||
print(f"✗ 页面访问失败")
|
||||
continue
|
||||
|
||||
# 验证登录状态
|
||||
from urllib.parse import urlparse
|
||||
parsed = urlparse(site['url'])
|
||||
target_domain = parsed.netloc
|
||||
|
||||
login_indicator = site.get('login_indicator')
|
||||
is_logged_in = self.browser.check_login_status(login_indicator)
|
||||
|
||||
if is_logged_in:
|
||||
print("✓ Cookie验证成功:已登录状态")
|
||||
else:
|
||||
print("⚠ Cookie验证失败:未检测到登录状态")
|
||||
|
||||
# 截图
|
||||
screenshot_path = f"{target_domain.replace('.', '_').replace(':', '_')}_screenshot.png"
|
||||
self.browser.take_screenshot(screenshot_path)
|
||||
|
||||
if idx < len(sites):
|
||||
print("\n等待3秒后继续下一个网站...")
|
||||
time.sleep(3)
|
||||
|
||||
# 关闭浏览器
|
||||
print(f"\n关闭浏览器")
|
||||
print("-" * 60)
|
||||
self.browser.close()
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("所有网站访问完成")
|
||||
print("=" * 60)
|
||||
|
||||
|
||||
def main():
|
||||
# 配置CookieCloud
|
||||
config = CookieCloudConfig(
|
||||
server="http://192.168.1.100:3000/cookiecloud",
|
||||
username="qyZpTrgiP5mVwiRZwfBhjz",
|
||||
password="iGn1B4FnWftp3oj4Ko3jxA",
|
||||
timeout=30
|
||||
)
|
||||
|
||||
# 创建示例程序
|
||||
demo = CookieDemo(config)
|
||||
|
||||
# 测试网站列表
|
||||
test_sites = [
|
||||
{
|
||||
"url": "https://lmkbi.95155.com/bi-system/#/login",
|
||||
"name": "BI系统",
|
||||
"login_indicator": "彭峰"
|
||||
},
|
||||
{
|
||||
"url": "http://192.168.1.100:3000/#/subscribe/movie",
|
||||
"name": "MoviePilot订阅",
|
||||
"login_indicator": "搜索"
|
||||
},
|
||||
{
|
||||
"url": "http://192.168.1.102:8418/bwadmin/QueryCarInfo2",
|
||||
"name": "QueryCarInfo2",
|
||||
"login_indicator": "工单管理"
|
||||
}
|
||||
]
|
||||
|
||||
# 下载一次数据,依次访问所有网站
|
||||
demo.run_sites(
|
||||
sites=test_sites,
|
||||
headless=False,
|
||||
use_edge=True
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"用户A_网站A": 0,
|
||||
"用户B_网站A": 0
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
"""测试 cookie 导入功能"""
|
||||
from browser_login import BrowserLogin
|
||||
from applogger import setup_logging
|
||||
|
||||
# 初始化日志
|
||||
setup_logging()
|
||||
|
||||
# 创建浏览器实例
|
||||
browser = BrowserLogin(browser_type="edge", headless=False)
|
||||
|
||||
# 模拟 cookie 数据
|
||||
test_cookies = [
|
||||
{"name": "test1", "value": "value1", "domain": "example.com", "path": "/", "secure": False, "httpOnly": False},
|
||||
{"name": "test2", "value": "value2", "domain": "example.com", "path": "/", "secure": True, "httpOnly": True},
|
||||
{"name": "test3", "value": "value3", "domain": "example.org", "path": "/", "secure": False, "httpOnly": False}
|
||||
]
|
||||
|
||||
print("测试 cookie 导入功能...")
|
||||
print(f"准备导入 {len(test_cookies)} 个 cookie")
|
||||
|
||||
# 测试导入功能
|
||||
result = browser.import_all_cookies(test_cookies)
|
||||
print(f"导入结果: {'成功' if result else '失败'}")
|
||||
|
||||
# 测试获取 cookie
|
||||
get_cookies = browser.get_all_cookies()
|
||||
print(f"获取到 {len(get_cookies)} 个 cookie")
|
||||
for cookie in get_cookies:
|
||||
print(f" - {cookie.get('name')}: {cookie.get('value')} (domain: {cookie.get('domain')})")
|
||||
|
||||
# 关闭浏览器
|
||||
browser.close()
|
||||
print("测试完成!")
|
||||
Reference in New Issue
Block a user