NetNut爬虫数据采集实战教程:从注册到日均百万请求配置
一、注册与准备工作
1.1 注册NetNut账号
首先访问NetNut官网完成账号注册。填写邮箱、设置密码,提交后账号即创建成功。
关键步骤:注册后账户不会立即激活,需要联系NetNut销售团队完成激活。这是因为NetNut会评估用户的使用场景和需求,以确保提供最适合的代理方案。
1.2 申请免费试用
NetNut提供7天免费试用,可通过以下方式激活:
-
注册后联系销售代表(WhatsApp、邮件或在线聊天)
-
说明使用场景(目标网站、爬虫用途、预估流量)
-
审核通过后即可获得试用额度
1.3 获取代理凭证
登录控制面板 → My Profile → Generate Proxy Password。注意密码生成后需等待15分钟才生效,务必截图保存。
二、核心参数速查
无论采用哪种采集方案,都需要以下基础参数:
| 参数 | HTTP/HTTPS | SOCKS5 |
|---|---|---|
| 代理主机 | gw.netnut.net |
gw-socks.netnut.net |
| 代理端口 | 5959 | 9595 |
| 认证方式 | 用户名 + 密码 | 用户名 + 密码 |
用户名格式(关键):
- 动态轮换(每请求换IP):
你的ID-res-国家代码 - 粘性会话(保持同一IP):
你的ID-res-国家代码-sid-随机数字 - 静态住宅(IP固定):
你的ID-stc-国家代码
三、三阶弹性架构:从千级到百万级请求
要实现日均百万级请求,不能只用一种代理。应采用三层弹性架构,在不同场景使用不同层级的IP资源:
| 层级 | 代理类型 | 成本 | 适用场景 |
|---|---|---|---|
| L1(首选) | 数据中心代理 | 低 | 反爬弱的网站、内部测试 |
| L2(主力) | 动态住宅代理 | 中 | 主流电商、新闻、论坛 |
| L3(攻坚) | 移动代理 / 静态住宅 | 高 | 高反爬网站(Google、Facebook) |
Python调度代码示例
:
def get_proxy_by_target(url): if is_easy_site(url): # 如普通博客 return get_datacenter_proxy() elif is_moderate_site(url): # 如电商平台 return get_residential_proxy() else: # 高防护网站 return get_mobile_proxy() # 自动降级:L2失败3次后切换到L3 for retry in range(3): response = request_with_proxy(proxy_l2) if response.success: break proxy_l2 = get_residential_proxy() # 换IP重试 else: proxy_l3 = get_mobile_proxy() # 降级到移动代理
四、日均百万请求的实战配置
4.1 基础配置:Python + requests
最简单的接入方式,适用于中小规模采集:
import requests # 基础动态轮换模式 proxies = { "http": "http://你的ID-res-us:你的密码@gw.netnut.net:5959", "https": "http://你的ID-res-us:你的密码@gw.netnut.net:5959" } # 发送请求,每次自动使用不同IP response = requests.get("https://目标网站.com", proxies=proxies) print(response.text)
4.2 粘性会话配置(需要保持登录态)
# 带sid参数,IP在30分钟内保持不变 proxies_sticky = { "http": "http://你的ID-res-us-sid-44575:你的密码@gw.netnut.net:5959", "https": "http://你的ID-res-us-sid-44575:你的密码@gw.netnut.net:5959" }
4.3 高频采集的调度策略
为了实现百万级请求,需要建立以下机制:
(1)IP健康监控
| 监控指标 | 阈值 | 处理动作 |
|---|---|---|
| 请求成功率 | <95% | 暂停使用,进入检测队列 |
| 连续失败 | >3次 | 立即淘汰,切换备用IP |
| 响应时间 | >3000ms | 降低优先级 |
(2)请求频率控制
不同目标网站采用不同策略:
-
高防护网站:单IP间隔30-60秒,每小时换IP
-
一般防护:单IP间隔5-10秒,每30分钟换IP
-
注入随机浮动:在基准间隔上±15%,避免固定节奏
(3)全局频率协调(分布式场景)
当多台服务器同时采集时,需要全局协调:
# 使用Redis实现全局频率控制 import redis import time r = redis.Redis() def rate_limit(domain): key = f"throttle:{domain}" last_time = r.get(key) if last_time: elapsed = time.time() - float(last_time) if elapsed < 1.0: # 全局最低间隔1秒 time.sleep(1.0 - elapsed) r.set(key, time.time())
4.4 吞吐量优化
根据NetNut官方最佳实践:
- 住宅代理:单IP推荐并发3-10
- 数据中心代理:单IP推荐并发50-200+
- 推荐使用大流量套餐:用量越大单价越低,Master套餐(2TB)单价低至$1.87/GB
五、集成指纹浏览器(多账号采集)
如果需要采集需要登录态的数据,建议配合指纹浏览器使用:
AdsPower配置示例:
- 代理类型:HTTP
- 主机:
gw.netnut.net - 端口:
5959 - 用户名:
你的ID-res-us(或stc-us固定IP) - 密码:控制台生成的密码
六、常见问题排查
6.1 密码连不上
NetNut的代理密码生成后有15分钟生效等待期。生成后耐心等待15分钟再使用。
6.2 IP频繁变动影响登录
需要在用户名末尾加上sid-随机数字开启粘性会话,否则每次请求都会换IP导致掉线。
6.3 网站返回403/429
说明请求频率过高或IP被识别。处理方式:
-
暂停该IP使用,自动切换备用IP
-
降低该目标的并发数
-
增加请求间隔
6.4 流量消耗过快
登录控制面板查看实时用量,可在达到85%时设置预警。大流量用户建议直接选择Professional或Master套餐。
七、从千级到百万级的演进路径
第一阶段(日请求<1万):使用基础Python requests + 动态住宅代理,单线程轮换。
第二阶段(日请求1-50万):引入三层弹性架构,L1数据中心+L2动态住宅混合,配合IP健康监控。
第三阶段(日请求50-200万):分布式部署,使用Redis做全局频率协调,L3移动代理攻坚高防网站。
第四阶段(日请求200万+):采用企业级套餐(800GB-2TB),结合智能调度系统,NetNut实测可达1700万日请求。
核心公式:成功率 = IP纯净度 × 调度策略 × 频率控制。三要素缺一不可。

