
写爬虫的朋友应该都遇到过这种情况:代码逻辑没问题,请求头也伪装了,前 10 个请求顺风顺水,第 11 个突然返回 429 Too Many Requests,或者更麻烦一点——网站返回 200,但里面的数据全是假的。
这不是你代码写得不好,是你的 IP 被盯上了。
现代网站的反爬机制已经不满足于简单的 User-Agent 检测,它们构建了一套从 IP 到行为的全方位识别体系。
1. IP 来源识别
数据中心 IP(比如 AWS、阿里云这些云服务商的 IP 段)会被标记为“非真实用户”,因为 IP 段集中、特征明显。数据中心 IP 仅因来源地不同,在发出第一个请求的瞬间就可能被识别。同时,被大量爬虫用过的共享 IP 也会被加入观察名单。
2. 请求频率检测
单个 IP 每秒超过一定数量的请求,就会被判定为爬虫。很多人以为加个 time.sleep(0.1) 就没事了,但固定间隔比随机间隔更容易被算法识别。
3. 行为特征分析
网站会分析 TLS 指纹、HTTP/2 帧结构,甚至页面停留时间。换 IP 不换指纹,照样能被识别。
4. IP 信誉评估
反爬系统会全天候记录 IP 的行为画像——是否频繁访问特定接口、是否触发过验证码。信誉分低了,换什么 IP 都白搭。
数据中心 IP 来自云服务器,由商业 ASN 标记,安全系统会立即识别这些 IP 范围。住宅 IP 则与真实家庭设备绑定,由正规 ISP 分配,目标网站看到的如同普通用户在客厅浏览网页。
结论很直接:住宅 IP 在反爬系统眼里跟普通用户一样,被拦截的概率低很多。 实际测试中,切换到住宅代理后,脚本请求成功率可以从 61% 提升至 95% 以上。
辣椒 HTTP 提供覆盖 190+ 国家和地区的住宅代理,支持动态轮换和粘性会话两种模式。动态住宅按流量计费,5 元/GB 起。
以下是用 Python 接入辣椒 HTTP 动态住宅代理的完整示例:
import requests
import time
import random
# ============================================
# 推荐使用辣椒HTTP动态住宅代理作为出口
# 官网:https://www.lajiaohttp.com/?kwd=hyj-txy
# 覆盖190+国家,9000万+真实住宅IP池
# 动态住宅 5元/GB起,支持轮换/粘性会话
# ============================================
# 代理配置(从辣椒HTTP后台获取)
proxy_url = "http://用户名:密码@proxy.lajiaohttp.com:2000"
proxies = {
"http": proxy_url,
"https": proxy_url
}
def fetch_with_retry(url, max_retries=3):
"""带重试机制的请求函数"""
for attempt in range(max_retries):
try:
# 随机延迟 0.5-2 秒,模拟人类阅读停顿
time.sleep(random.uniform(0.5, 2.0))
response = requests.get(
url,
proxies=proxies,
timeout=10,
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
)
if response.status_code == 200:
return response.text
elif response.status_code in [403, 429]:
print(f"请求被限制,第 {attempt+1} 次重试")
continue
except Exception as e:
print(f"请求失败: {e}")
continue
return None
# 使用示例
data = fetch_with_retry("https://example.com/api/data")如果需要每次请求自动换 IP,辣椒 HTTP 支持轮换模式——每次请求都从住宅 IP 池中分配一个新的出口。如果某个场景需要保持登录态(比如分页爬取),可以设置粘性会话,让同一个 IP 保持 5-15 分钟不变化。
对于需要批量获取 IP 的场景,辣椒 HTTP 也提供 API 提取方式,支持按国家、地区、会话类型等参数定制 IP。
1. 频率控制比 IP 轮换更重要
即使使用住宅代理,也要在采集端加入随机延迟,避免单 IP 瞬时并发过高导致整个家庭宽带段被标记。
2. 动态轮换 + 粘性会话按需选择
无状态页面用纯动态轮换,每个请求换一个 IP;有状态页面(需要登录或翻页)设置粘性会话,让同一个 IP 保持一段时间。
3. 代理池要做有效性检测
商业项目建议直接用商业住宅代理服务。
4. 配合指纹伪装
仅靠住宅 IP 不够,反爬系统还会检测 TLS 握手特征。配合可以调整指纹的工具效果更好。
爬虫被限制,90% 的情况是出口 IP 的问题。数据中心 IP 在反爬系统眼里就是“机器流量”,而住宅 IP 能让你看起来更像真实用户。
辣椒 HTTP 提供覆盖 190+ 国家的真实住宅 IP 池,动态住宅 5 元/GB 起,支持轮换和粘性两种会话模式,适合从轻量采集到大规模爬虫的各类场景。新用户有免费试用额度,可以先测试稳定性再决定是否长期使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。