
手把手教你用cURL伪装浏览器请求
搞爬虫的朋友应该都遇到过这种情况:明明代码写得好好的,目标网站突然就封IP了。这时候就得请出两大法宝——代理IP和请求头伪装。今天咱们就拿cURL当例子,说说怎么把这两招玩出花来。
为啥要折腾代理IP?
举个栗子,你每天去小区超市买鸡蛋,连着三天都穿红衣服去,第四天老板直接说”红衣服的不卖!”。代理IP就像每天换不同颜色的衣服,让超市老板认不出是同一个人。
用ipipgo的代理服务,相当于拥有整个衣柜的衣服随便换。他们的动态IP池子深得很,每次请求都能给你分配新马甲,比那些小作坊的代理稳当多了。
cURL基础伪装术
先看段裸奔的代码:
curl https://example.com
这种请求就像没穿衣服上街,服务器一眼就能认出是机器访问。咱们得给它套件衣服:
curl -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
-H "Accept-Language: zh-CN,zh;q=0.9"
-H "Referer: https://www.google.com/"
https://example.com
这几个请求头就像身份证信息,把爬虫伪装成普通网民。注意User-Agent要选常见的浏览器版本,别整那些过时的古董机型。
给cURL套上代理马甲
光伪装还不够,得把真实IP藏起来。用ipipgo的代理服务就像找了个中间人帮你跑腿:
curl -x http://username:password@proxy.ipipgo.cc:8080
-H "User-Agent: Mozilla/5.0..."
https://target-site.com
这里注意三点:
- 代理地址别写错,ipipgo的用户后台有现成的生成工具
- 账号密码要替换成自己的,别傻乎乎用示例里的
- 记得先测试代理是否连通,可以用curl先访问ip.ipipgo.com看看返回的IP对不对
高级伪装技巧
有些网站贼精,会检查更多参数。这时候需要更全面的伪装方案:
| 请求头 | 示例值 | 注意事项 |
|---|---|---|
| Accept-Encoding | gzip, deflate, br | 要和服务端支持的压缩方式匹配 |
| Connection | keep-alive | 模仿浏览器长连接 |
| Sec-Fetch-系列 | 根据场景设置 | 新版浏览器自动添加的元数据 |
全套武装后的代码长这样:
curl -x http://ipipgo_proxy
-H "User-Agent: Mozilla/5.0..."
-H "Accept: text/html,application/xhtml+xml..."
-H "Accept-Encoding: gzip, deflate, br"
-H "Connection: keep-alive"
--compressed
https://target-site.com
常见问题QA
Q:用了代理还是被封?
A:检查两个点:1.请求头是否完整 2.代理IP质量。推荐用ipipgo的优质动态代理,他们家IP存活时间短但质量高,适合高频率请求。
Q:代理速度慢怎么办?
A:优先选择地理位置近的节点。ipipgo的智能路由功能能自动匹配最快线路,比手动切换省事得多。
Q:需要多地区IP怎么办?
A:在ipipgo后台的代理地址里加地区参数就行,比如®ion=shanghai指定上海节点,或者&city=random随机切换城市。
避坑指南
新手常犯的错就是伪装过头。比如把请求头塞满各种参数,结果反而暴露异常。记住三个原则:
- 参数值要符合逻辑(比如手机UA别带Windows系统信息)
- 各header之间要自洽(比如Accept和Content-Type要匹配)
- 保持参数更新(每季度更新一次浏览器版本号)
最后安利下ipipgo的浏览器指纹模拟功能,能自动生成配套的请求头参数,比自己手动配置省心多了。特别是做长期采集项目的,建议直接上他们的企业版套餐,带自动更换IP和请求头的全套方案。

