PHP采集,除了VPN,还有哪些方法可以更换IP?
时间:2021-07-01 10:21:17
帮助过:168人阅读
用PHP做采集,对方服务器封IP,需要每隔几分钟自动更换IP。目前买了几个付费的VPN软件,可以按照一定的时间间隔切换线路,达到更换IP的目的,这类VPN软件有个通病,容易闪退,线路质量有的也不行。
还尝试过其他方法:
1、使用PHP curl的代理功能,对方服务器有时候可以识别出来,而且代理很不稳定。
2、试用了某宝上面的秒换IP VPS服务器,就是用软件自动拨号,切换IP,这种方式,如果VPS的IP段不够多的话,也容易被对方服务器发现,直接被封IP段。
还有其他稳定可靠的伪装IP的方法么,IP地址国内的就行,线路多,最好能实现按照一定的时间间隔自动切换IP。
回复内容:
谢邀!首先用VPN来防止对方封IP是不可取的,因为成本太高。其次是curl上模拟头部IP,如果对方服务器上不做真实IP识别是发现不了的,如果做了那利用CURL来欺骗是不可取的。
上面三楼提到了伪装成百度蜘蛛,这个较为可取,因为百度蜘蛛的IP是定时更换的,所以一般网站都会只识别蜘蛛头部来为蜘蛛开一个绿色通道。这样就可以利用CURL来伪装头部进行提交了。
当然,如果对方站点做得非常严密,严密到可以识别一切伪装。可以利用自己现有站点的页面中镶嵌隐形iframe的方式来抓取页面和图片,发送的IP是访问者客户端的IP,在网页中写一个JS事件来监听iframe,当加载完成后将内容ajax到服务器。
Python Scrappy 文档有一节专门讲这个问题的可能方案
Common Practices: Avoiding getting banned
VPN不是大型蜘蛛反侦测的解决方案。
伪装成百度蜘蛛。
谢邀,php有curl这么强大的库不用,用vpn浪费钱还麻烦,给你讲解一下具体实现思路。
首先php curl带上头信息:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘X-FORWARDED-FOR:8.8.8.8′, ‘CLIENT-IP:8.8.8.8′)); //构造IP
curl_setopt($ch, CURLOPT_REFERER, “http://www.5lazy.cn/ “); //构造来路
curl_setopt($ch, CURLOPT_HEADER, 1);
然后带上UA信息(这个可以百度,类似教程很多)。
首先curl数据需要实时抓取吗,如果不需要还是建议curl下来放数据库吧,伪造IP不一定有用,你可以试试。
ssh / http proxy,走curl
可以自己获取IP,建立IP使用策略
弄一个大的http代理的列表(网上很多),每次用不同的通过代理去访问。
骚年,干点正经工作吧,采集人家东西不好。