
手把手教你用cURL挂代理时加请求头
搞爬虫的老铁们应该都懂,有些网站特精,光挂代理还不够,得在请求头上做点手脚才能蒙混过关。今儿咱们就用cURL这个神器,说说怎么在代理请求时自定义请求头。
基础代理配置先整明白
先整个最简单的代理设置,拿咱们ipipgo的代理举个栗子:
curl -x http://user:pass@proxy.ipipgo.com:8000 https://target-site.com
这里注意-x参数后面跟着的格式,冒号别打错位置。要是用socks5代理就把http换成socks5,端口号看具体套餐给的信息。
请求头伪装实战技巧
有些网站会检查User-Agent这些参数,咱得装得像普通浏览器。试试这个配置:
curl -x http://proxy.ipipgo.com:8000
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
-H "Accept-Language: zh-CN,zh;q=0.9"
https://target-site.com
重点看-H参数,可以无限叠加。我一般习惯把常用头信息存成配置文件,用–config参数调用,省得每次手敲。
认证信息别往代码里硬塞
新手常犯的错是把账号密码直接写命令行里,这样既不安全又难维护。建议用.netrc文件管理:
在用户目录创建.netrc文件
machine proxy.ipipgo.com
login 你的账号
password 你的密码
然后执行时加个–netrc参数就完事,代码清爽多了:
curl --netrc -x http://proxy.ipipgo.com:8000 ...
超时重试得安排上
用代理难免遇到网络波动,这几个参数关键时刻能救命:
--connect-timeout 30 连接超时30秒
--max-time 120 整体超时2分钟
--retry 3 失败自动重试3次
实战QA排坑指南
Q:代理设置成功了但网站还是返回403?
A:八成是请求头露馅了,试试加上Referer和Cookie头,用–verbose参数看完整请求过程
Q:HTTPS请求老是证书报错?
A:在命令最后加个–proxy-insecure,或者用–proxy-cacert指定证书路径
Q:怎么批量测试代理池?
A:把代理地址写进txt文件,用-K参数轮询调用,记得配合随机请求头插件
为啥推荐ipipgo代理
自家用的代理服务,说几个实在的优势:
| 套餐类型 | 适用场景 | 价格优势 |
|---|---|---|
| 动态住宅(标准) | 日常数据采集 | 7.67元/GB/月 |
| 动态住宅(企业) | 高频访问需求 | 9.47元/GB/月 |
| 静态住宅 | 长期固定业务 | 35元/IP/月 |
特别要夸他们的TK专线,处理验证码识别率能高不少。API提取也方便,直接curl他们的接口就能拿到新鲜代理,省得自己维护IP池。
最后唠叨句,代理配置这事儿得多试多调。碰到怪问题别急着换代理,先用–trace-ascii把请求日志存下来分析,很多时候是参数没整对。有啥具体问题欢迎来撩,咱们实战派不讲虚的。

