手把手教你用cURL加请求头配代理
搞数据采集的朋友都知道,服务器现在都精得很,随便发个请求分分钟被掐断。这时候就得给cURL穿件"马甲"——既加请求头又挂代理IP。天启代理的IP池子够大够干净,正好能配合着玩这套组合拳。
请求头到底是个啥门道?
简单说请求头就是浏览器身份证。服务器看这个判断是不是真人操作。用cURL发请求时,默认带的头信息太寒酸,一看就是机器人在搞事。咱们得自己加几个关键字段:
必加三件套:- User-Agent:伪装成正经浏览器(比如Chrome最新版)
- Accept-Language:告诉服务器用啥语言
- Referer:假装从某个正经页面跳转过来
curl -H "User-Agent: Mozilla/5.0 (Windows NT 10.0)" \ -H "Accept-Language: zh-CN" \ -H "Referer: https://正经网站.com" \ https://目标网站.com
代理IP的正确打开方式
光改请求头还不够,IP地址暴露照样完蛋。天启代理的IP池子有200多个城市节点,每次请求换个马甲,服务器根本摸不清套路。他们的SOCKS5协议用着最顺手,走代理的速度跟裸奔差不多快。
实战脚本这么写:
curl -x socks5://天启代理的接入域名:端口 \ -U 用户名:密码 \ -H "User-Agent: 伪装信息" \ --connect-timeout 10 \ https://要访问的网站重点注意:
- 代理地址别手抖打错,天启的接入地址都是tqdl.xxxx格式
- -U参数要带账号密码,他们家的鉴权方式稳
- 超时设置别超过10秒,他们的IP响应基本秒连
实战避坑指南
遇到过明明加了头还是被识破的情况?八成是细节没抠到位。这里有几个血泪教训:
坑点 | 破解招数 |
---|---|
Cookie泄露身份 | 每次请求清空cookie jar |
头信息顺序不对 | 用--trace-ascii查原始请求 |
SSL指纹暴露 | 加上--tlsv1.2强制加密协议 |
举个真实案例:某客户用天启代理的厦门节点,配合下面这段伪装代码,连续跑了三天都没被封:
curl -x socks5://tqdl.example.com:3000 -U user123:pass456 \ -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)" \ -H "Accept: text/html,application/xhtml+xml" \ --compressed \ --retry 3 \ https://目标站点
常见问题排雷
Q:加了请求头服务器咋还是不认?
A:八成是头信息没配对,用curl -v
参数看完整请求,对比浏览器发的真实请求查缺补漏
Q:代理IP老是连不上咋整?
A:先检查网络环境,再换天启代理的不同城市节点。他们的IP可用率标称99%,实际用下来确实很少碰到死IP
Q:需要处理cookie怎么办?
A:用-c cookies.txt
参数存cookie,下次请求带-b cookies.txt
。记得每次换代理要清空cookie
终极组合技
把配置写成bash函数,用着更顺手:
tq_curl() { local url=$1 curl -x socks5://天启代理地址 \ -U 你的账号信息 \ -H "User-Agent: 随机生成的UA" \ -H "Accept-Encoding: gzip" \ --compressed \ --connect-timeout 8 \ "$url" }
这么搞之后,每次请求都是全新身份,配合天启代理的毫秒级响应,采集效率直接起飞。记住关键点:头信息要真、代理IP要快、错误处理要稳,这三板斧耍好了,基本上就能横着走。