Files
ai_wht_wechat/backend/DAMAI_PROXY_GUIDE.md

267 lines
6.1 KiB
Markdown
Raw Permalink Normal View History

2026-01-06 19:36:42 +08:00
# 大麦固定代理IP使用指南
## 📋 概述
本项目已集成两个大麦固定代理IP可用于无头浏览器访问支持完整的HTTP认证。
## 🌐 代理配置
### 代理1
- **服务器**: `36.137.177.131:50001`
- **用户名**: `qqwvy0`
- **密码**: `mun3r7xz`
- **状态**: ✅ 已测试可用
### 代理2
- **服务器**: `111.132.40.72:50002`
- **用户名**: `ih3z07`
- **密码**: `078bt7o5`
- **状态**: ✅ 已测试可用
## 📂 相关文件
| 文件名 | 说明 |
|--------|------|
| `damai_proxy_config.py` | 代理配置管理模块 |
| `test_damai_proxy.py` | 代理测试脚本 |
| `example_use_damai_proxy.py` | 使用示例代码 |
## 🚀 快速开始
### 1. 测试代理可用性
```bash
# 测试所有代理
python test_damai_proxy.py
# 测试单个代理
python test_damai_proxy.py 0 # 测试代理1
python test_damai_proxy.py 1 # 测试代理2
```
### 2. 在代码中使用
#### 方式一:使用配置模块
```python
from damai_proxy_config import get_proxy_1, get_proxy_2, get_random_proxy
# 获取指定代理
proxy = get_proxy_1() # 或 get_proxy_2()
# 随机获取代理
proxy = get_random_proxy()
print(proxy)
# 输出: {'server': 'http://...', 'username': '...', 'password': '...'}
```
#### 方式二在Playwright中使用
```python
from playwright.async_api import async_playwright
from damai_proxy_config import get_proxy_1
async def use_proxy():
proxy_config = get_proxy_1()
playwright = await async_playwright().start()
# 配置代理(含认证)
browser = await playwright.chromium.launch(
headless=True,
proxy={
"server": proxy_config["server"],
"username": proxy_config["username"],
"password": proxy_config["password"]
}
)
context = await browser.new_context()
page = await context.new_page()
# 访问目标网站
await page.goto("https://www.damai.cn/")
await browser.close()
await playwright.stop()
```
#### 方式三集成到browser_pool
```python
from browser_pool import get_browser_pool
from damai_proxy_config import get_random_proxy
async def use_with_pool():
# 获取代理配置
proxy = get_random_proxy()
# 注意当前browser_pool需要修改以支持带认证的代理
pool = get_browser_pool()
browser, context, page = await pool.get_browser(
proxy=f"{proxy['server']}" # 基础用法
)
```
## 🔧 API文档
### damai_proxy_config.py
#### `get_proxy_config(index: int) -> dict`
获取指定索引的代理配置
**参数:**
- `index`: 代理索引0或1
**返回:**
```python
{
"server": "http://...",
"username": "...",
"password": "..."
}
```
#### `get_proxy_1() -> dict`
快捷获取代理1配置
#### `get_proxy_2() -> dict`
快捷获取代理2配置
#### `get_random_proxy() -> dict`
随机获取一个可用代理
#### `get_all_enabled_proxies() -> list`
获取所有已启用的代理列表
## ✅ 测试结果
所有代理已通过以下测试:
1.**IP检测测试** - 确认代理IP地址正确
2.**小红书访问测试** - 成功访问小红书创作平台
3.**大麦网访问测试** - 成功访问大麦网
### 测试日志示例
```
🔍 开始测试: 大麦代理1
代理服务器: http://36.137.177.131:50001
认证信息: qqwvy0 / mun3r7xz
============================================================
✅ Playwright启动成功
✅ 浏览器启动成功
✅ 浏览器上下文创建成功
✅ 页面创建成功
📍 测试1: 访问IP检测网站...
✅ 访问成功
🌐 当前IP信息:
{
"origin": "36.137.177.131"
}
📍 测试2: 访问小红书登录页...
✅ 访问成功
页面标题: 小红书创作服务平台
📍 测试3: 访问大麦网...
✅ 访问成功
页面标题: 大麦网-全球演出赛事官方购票平台
```
## 🎯 使用场景
1. **反爬虫绕过** - 使用固定IP避免频繁更换导致的风险
2. **地域限制** - 使用特定地区的IP访问区域性内容
3. **负载均衡** - 在多个代理间轮换,分散请求压力
4. **容错处理** - 一个代理失败时自动切换到备用代理
## ⚠️ 注意事项
1. **认证信息安全**: 代理用户名密码已配置在代码中,生产环境建议使用环境变量
2. **代理轮换**: 建议实现代理轮换机制避免单一IP被封禁
3. **异常处理**: 建议添加代理失败时的重试和切换逻辑
4. **性能影响**: 使用代理会增加网络延迟,请根据实际需求权衡
## 🔄 代理管理
### 启用/禁用代理
编辑 `damai_proxy_config.py`,修改代理配置中的 `enabled` 字段:
```python
DAMAI_PROXY_POOL = [
{
"name": "大麦代理1",
"server": "http://36.137.177.131:50001",
"username": "qqwvy0",
"password": "mun3r7xz",
"enabled": True # 设置为False禁用此代理
},
# ...
]
```
### 添加新代理
`DAMAI_PROXY_POOL` 列表中添加新的代理配置:
```python
{
"name": "新代理",
"server": "http://ip:port",
"username": "username",
"password": "password",
"enabled": True
}
```
## 📊 性能测试
根据测试结果,代理响应时间:
- IP检测: ~2-3秒
- 小红书: ~3-5秒
- 大麦网: ~3-5秒
## 🛠️ 故障排查
### 问题1: 代理连接超时
**解决方案**:
1. 检查代理服务器是否在线
2. 验证认证信息是否正确
3. 增加连接超时时间
### 问题2: 认证失败
**解决方案**:
1. 确认用户名密码正确
2. 检查代理是否需要IP白名单
3. 联系代理服务商确认账户状态
### 问题3: 访问被拒绝
**解决方案**:
1. 切换到另一个代理
2. 检查目标网站是否封禁了代理IP
3. 添加适当的请求头和延迟
## 📝 更新日志
### 2025-12-26
- ✅ 初始化大麦代理配置
- ✅ 完成两个代理的测试验证
- ✅ 创建配置管理模块
- ✅ 添加使用示例和文档
## 📞 技术支持
如遇到代理相关问题,请检查:
1. 网络连接是否正常
2. 代理服务商是否有公告
3. 代理配置是否正确
---
**最后更新**: 2025-12-26
**版本**: 1.0.0