当爬虫遇到反爬?手把手教你用curl藏好身份
最近有个做数据抓取的朋友跟我吐槽,说现在网站都学精了,用curl直接请求分分钟被识别成机器人。其实这事儿就跟玩捉迷藏似的,光用代理IP换马甲还不够,得把发型衣服(UA)也捯饬捯饬。今天咱们就拿curl开刀,讲讲怎么双管齐下搞定伪装。
为什么UA和代理要组CP?
很多新手以为挂个代理IP就万事大吉,结果刚伸手就被逮。举个栗子:你用天启代理的住宅IP访问,但curl默认的UA是"curl/7.68.0",这就像穿着病号服逛商场——太扎眼。网站一看:呦,这IP明明是北京大妈家的宽带,怎么访问设备显示是Linux服务器?直接给你贴个机器人标签。
错误姿势 | 正确姿势 |
---|---|
curl http://example.com | curl -A "Mozilla/5.0..." --proxy http://user:pass@ip:port |
三行代码搞定伪装套餐
先说个万能模板,拿记事本记好:
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" \ --proxy http://tianqi_user:tianqi_pass@proxy.tianqiip.com:2080 \ https://target-site.com
这里重点说下天启代理的配置诀窍:他们家支持用户名+密码和IP白名单两种认证方式。如果是动态住宅代理,建议用前者,记得把tianqi_user换成你的API账号。实测他们家代理响应速度基本在8ms左右,比很多家快一倍不止。
实战踩坑记录
上周帮客户调试时遇到个邪门情况:UA设置正常,代理IP也没问题,但网站还是返回403。最后发现是Cookie连锁反应——虽然换了IP和UA,但curl默认会带Cookie,导致被识别。解决办法加个-b ""参数清空Cookie:
curl -A "..." --proxy http://tianqi... -b "" https://...
另外注意天启代理的协议适配问题:他们家HTTPS网站要走HTTP代理协议,别傻乎乎用socks5,具体配置看这张表:
目标协议 | 代理协议 |
---|---|
HTTP网站 | HTTP/SOCKS5 |
HTTPS网站 | HTTP代理 |
小白QA急救包
Q:UA到底该用Windows还是Mac的?
看目标用户群,抓电商数据用手机UA,抓企业数据用Windows。天启代理的IP属地精确到城市,可以匹配当地主流设备,比如深圳IP配安卓UA更真实。
Q:代理IP突然连不上咋整?
先ping下IP看是否被墙,天启代理的后台能实时查看IP健康度。如果遇到问题,他们家技术支持响应比顺丰快递还快,亲测5分钟内必有回复。
Q:需要定期更换UA吗?
跟换衣服一个道理,别三个月不换UA。建议准备5-6个主流UA轮换,搭配天启代理的IP自动切换功能,这样行为模式更像真人。
最后唠叨句:别在免费代理上浪费时间,那些IP早就进了黑名单。像天启代理这种有自建机房的服务商,IP池都是家庭宽带真实出口,检测率能低好几个量级。最近他们搞了个新功能,可以按业务场景定制UA+IP组合策略,这对做精准数据采集的兄弟简直是开挂神器。