
手把手教你用curl加自定义Header
今天咱们唠唠用curl发请求时怎么捎带私货——就是那些自定义的Header。搞过数据采集的兄弟都懂,有些网站贼精,专逮不带Header的请求封杀。这时候用ipipgo的代理IP配合自定义Header,能有效降低被封概率。
curl -x http://user:pass@proxy.ipipgo.com:8080 -H "X-Request-From: mytool" https://example.com
上面这行代码里,-x参数指定代理服务器,注意把user和pass换成自己在ipipgo账号里生成的认证信息。后面那个-H就是塞自定义Header的关键,这里加了X-Request-From标识请求来源。
Header参数怎么选才不露馅
随便乱写Header反而容易被识破,这里教几个实用套路:
- User-Agent必须带:别用curl默认的,伪装成浏览器更安全
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36" - 加时间戳防重复:像X-Timestamp: 20240620123045这种
- 业务标识符:比如X-Project: data_crawler_01,方便后期排查
代理IP和Header的配合技巧
用ipipgo的代理池时,建议每个请求都换不同Header组合。举个真实场景:
第一次请求
curl -x http://user:pass@proxy1.ipipgo.com:8888 -H "UA: Chrome/120"
隔5分钟换新IP和新Header
curl -x http://user:pass@proxy2.ipipgo.com:8888 -H "UA: Firefox/115"
注意看这里代理地址和Header同时变化,这样目标网站更难识别请求规律。ipipgo的代理IP存活时间长达24小时,完全够用。
常见翻车现场QA
Q:加了Header还是被封?
A:检查三处:1)Header值是否包含特殊字符 2)代理IP是否生效 3)请求频率是否过高
Q:怎么测试Header是否生效?
A:先用这个调试接口试试:
curl -H "Custom-Header: test123" https://httpbin.org/headers
Q:ipipgo的代理需要额外配置吗?
A:不需要复杂操作,直接复制控制台给的地址往curl里怼就行,新用户有3天试用期。
高阶玩家秘籍
给老司机们支个招——用随机延时+动态Header组合。比如这样写shell脚本:
sleep $((RANDOM%10)) 随机等0-10秒
curl -x http://user:pass@${PROXY_SERVER}
-H "X-Request-ID: $(date +%s)$RANDOM"
-H "User-Agent: Mozilla/5.0 (Macintosh; $(uname -m))"
这里用了系统变量生成动态值,比写死的内容更难被识别。ipipgo的代理IP支持同时发起2000个连接,配合这种骚操作,采集效率直接拉满。
最后提醒下,遇到403错误先别慌,去ipipgo后台看看IP可用状态。他们家代理池每15分钟自动更新,基本上换个IP就能解决问题。记住,好用的工具+正确的姿势才是王道!

