Files
ai_wht_wechat/backend/DAMAI_PROXY_GUIDE.md
2026-01-06 19:36:42 +08:00

267 lines
6.1 KiB
Markdown
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可用于无头浏览器访问支持完整的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