267 lines
6.1 KiB
Markdown
267 lines
6.1 KiB
Markdown
# 大麦固定代理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
|