Files
ai_wht_wechat/backend/damai_proxy_config.py
2026-01-10 21:46:50 +08:00

195 lines
4.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
小红书代理IP配置
用于在无头浏览器中使用代理IP防止风控
"""
# 代理IP池配置
PROXY_POOL = [
{
"name": "代理01",
"server": "http://60.188.239.186:3101", # 如果支持SOCKS5改为 socks5://...
"username": "46vTEIvZt",
"password": "gM33AFND",
"enabled": False # HTTP代理不支持HTTPS隧道暂时禁用
},
{
"name": "代理02",
"server": "http://222.94.104.232:4201",
"username": "46azrCOcF",
"password": "WKyKYE6P",
"enabled": False # HTTP代理不支持HTTPS隧道暂时禁用
},
{
"name": "代理03",
"server": "http://125.94.108.2:4601",
"username": "46eX9tk99",
"password": "odtvKjpl",
"enabled": False # HTTP代理不支持HTTPS隧道暂时禁用
},
{
"name": "代理04",
"server": "http://113.24.66.191:3601",
"username": "46r74jRaD",
"password": "WjOXiXjq",
"enabled": False # HTTP代理不支持HTTPS隧道暂时禁用
},
{
"name": "代理05",
"server": "http://113.249.158.23:4401",
"username": "46oKu9Ovb",
"password": "4kWUGkNv",
"enabled": False # HTTP代理不支持HTTPS隧道暂时禁用
}, {
"name": "天启01",
"server": "http://36.137.177.131:50001",
"username": "qqwvy0",
"password": "mun3r7xz",
"enabled": False
}, {
"name": "天启02",
"server": "http://111.132.40.72:50002",
"username": "ih3z07",
"password": "078bt7o5",
"enabled": True
}, {
"name": "天启03",
"server": "http://210.51.27.194:50001",
"username": "hb6su3",
"password": "acv2ciow",
"enabled": False
}
]
def get_proxy_config(index: int = 0) -> dict:
"""
获取指定索引的代理配置
Args:
index: 代理索引0-4
Returns:
代理配置字典包含server、username、password
"""
if index < 0 or index >= len(PROXY_POOL):
raise ValueError(f"代理索引无效: {index},有效范围: 0-{len(PROXY_POOL) - 1}")
proxy = PROXY_POOL[index]
if not proxy.get("enabled", True):
raise ValueError(f"代理已禁用: {proxy['name']}")
return {
"server": proxy["server"],
"username": proxy["username"],
"password": proxy["password"]
}
def get_all_enabled_proxies() -> list:
"""
获取所有已启用的代理配置
Returns:
代理配置列表
"""
return [
{
"server": p["server"],
"username": p["username"],
"password": p["password"],
"name": p["name"]
}
for p in PROXY_POOL
if p.get("enabled", True)
]
def get_random_proxy() -> dict:
"""
随机获取一个可用的代理配置
Returns:
代理配置字典
"""
import random
enabled_proxies = [p for p in PROXY_POOL if p.get("enabled", True)]
if not enabled_proxies:
raise ValueError("没有可用的代理")
proxy = random.choice(enabled_proxies)
return {
"server": proxy["server"],
"username": proxy["username"],
"password": proxy["password"],
"name": proxy["name"]
}
def format_proxy_url(proxy_config: dict) -> str:
"""
将代理配置格式化为Playwright可用的代理URL
Args:
proxy_config: 代理配置字典
Returns:
格式化的代理URL: http://username:password@host:port
"""
server = proxy_config['server'].replace('http://', '').replace('https://', '')
username = proxy_config['username']
password = proxy_config['password']
return f"http://{username}:{password}@{server}"
def format_proxy_for_playwright(proxy_config: dict) -> dict:
"""
将代理配置格式化为Playwright的proxy字典格式
Args:
proxy_config: 代理配置字典
Returns:
Playwright proxy配置: {"server": "...", "username": "...", "password": "..."}
"""
return {
"server": proxy_config['server'],
"username": proxy_config['username'],
"password": proxy_config['password']
}
# 快捷访问函数(保持向后兼容)
def get_proxy_1():
"""获取代理01配置"""
return get_proxy_config(0)
def get_proxy_2():
"""获取代理02配置"""
return get_proxy_config(1)
def get_proxy_3():
"""获取代理03配置"""
return get_proxy_config(2)
def get_proxy_4():
"""获取代理04配置"""
return get_proxy_config(3)
def get_proxy_5():
"""获取代理05配置"""
return get_proxy_config(4)
def get_proxy_6():
"""获取代理06配置"""
return get_proxy_config(5)
def get_proxy_7():
"""获取代理07配置"""
return get_proxy_config(6)