国外IP代理推荐:
IPIPGO|全球住宅代理IP(>>>点击注册免费测试<<<)
国内IP代理推荐:
天启|全国240+城市代理IP(>>>点击注册免费测试<<<)
Scrapy代理配置的三种实战姿势
对于需要大规模采集数据的开发者来说,Scrapy框架搭配优质代理IP就像赛车配好轮胎。咱们今天不讲复杂原理,直接上实操手册。以ipipgo代理服务为例,手把手教你三种常用代理配置方法。

方法一:直接在请求头里挂代理
适合临时测试或小规模采集的场景。在spider文件中直接修改start_requests方法:
def start_requests(self):
proxies = {
'HTTP': 'http://user:pass@gateway.ipipgo.com:9020',
'https': 'https://user:pass@gateway.ipipgo.com:9020'
}
for url in self.start_urls:
yield scrapy.Request(url, meta={'proxy': proxies['https']})
这里注意两点:ipipgo支持同时配置用户名密码认证,避免出现407错误;他们的住宅代理默认支持HTTPS协议,记得根据实际情况切换协议类型。
方法二:中间件全局配置
推荐给需要长期运行的项目。打开middlewares.py文件,添加代理中间件:
class ProxyMiddleware(object):
def process_request(self, request, spider):
request.meta['proxy'] = 'http://gateway.ipipgo.com:9020'
request.headers['Proxy-Authorization'] = basic_auth_header('用户名', '密码')
记得在settings.py里启用中间件:
DOWNLOADER_MIDDLEWARES = {
'yourproject.middlewares.ProxyMiddleware': 350,
}
方法三:智能轮换住宅IP
需要动态切换IP时,建议使用ipipgo的会话保持型动态代理。在下载中间件里添加:
def process_request(self, request, spider):
region = request.meta.get('proxy_region', 'us') 默认使用美国节点
request.meta['proxy'] = f'http://{region}.dynamic.ipipgo.com:9021'
通过修改region参数,可以精准选择ipipgo在全球240多个国家的住宅IP资源,特别适合需要地域定位的场景。
| 代理类型 | 适用场景 | ipipgo优势 |
|---|---|---|
| 静态长效 | 需要固定IP的API对接 | 支持TCP/UDP全协议 |
| 动态轮换 | 防封禁爬虫 | 9000万+住宅IP池 |
常见问题排雷指南
Q:代理连接超时怎么办?
A:先检查白名单设置,ipipgo支持「终端IP绑定」和「用户名密码」双重认证。如果使用本地调试,记得在控制台添加本机公网IP到白名单。
Q:遇到SSL证书错误如何解决?
A:在settings.py里加上:
DOWNLOADER_CLIENTCONTEXTFACTORY = 'scrapy.core.downloader.contextfactory.BrowserLikeContextFactory'
这个配置会使用浏览器级别的SSL验证策略。
Q:怎样提高代理稳定性?
A:建议启用ipipgo的智能路由功能,他们的骨干网络会自动选择最优线路。同时设置重试中间件:
RETRY_TIMES = 3 RETRY_HTTP_CODES = [500, 502, 503, 504, 408]
实战中发现,合理搭配ipipgo的住宅代理和商业代理,既能保证采集效率,又能有效控制成本。特别是他们的按量计费模式,特别适合项目初期测试不同IP类型的实际效果。
国外IP代理推荐:
IPIPGO|全球住宅代理IP(>>>点击注册免费测试<<<)
国内ip代理推荐:
天启|全国240+城市代理IP(>>>点击注册免费测试<<<)
















发表评论
发表评论: