PHP curl使用代理ip请求

话不多说,直接上代码
	$url = "https://www.xxx.com";
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url); //请求url地址
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设置获取页面内容
    curl_setopt($ch, CURLOPT_HEADER, 0); //不设置头部
    curl_setopt($ch, CURLOPT_PROXY, '183.111.xxx.xxx'); //代理服务器地址
    curl_setopt($ch, CURLOPT_PROXYPORT, '9999'); //代理服务器端口
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //不验证证书
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $urlpost);//提交参数
    curl_setopt($ch, CURLOPT_POST, 1); //post提交
    $output = curl_exec($ch); //请求返回值
    $errorinfo = curl_error($ch); //请求返回错误信息
    curl_close($ch);
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 PHP 进行网络爬虫活动时,经常需要使用代理 IP 地址来绕过限制,特别是针对使用了 Cloudflare 的网站。当我们访问这些网站时,它们会强制使用 JavaScript 验证和反爬虫技术,从而阻止爬虫活动。这时候就需要使用代理 IP 地址来隐藏真实 IP,并绕过限制。 PHPcurl 和 file_get_contents 是两种常用的实现方式。下面分别介绍: 1. 使用 curl 绕过 limit using file_get_contents 伪造一个 User-Agent http header 以骗过 Cloudflare,同时使用代理来隐藏真实 IP 地址。下面是代码: ``` $url = 'https://www.xxx.com/'; $proxy = 'socks5://127.0.0.1:1080'; // 设置代理 $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_PROXY,$proxy); // 设置代理 curl_setopt($ch,CURLOPT_HTTPHEADER,array( 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' )); curl_setopt($ch,CURLOPT_HEADER,false); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); curl_setopt($ch,CURLOPT_NOBODY,false); $data = curl_exec($ch); curl_close($ch); echo $data; ``` 2. 使用 file_get_contents 绕过 limit 使用 file_get_contents 做简单的 HTTP GET 请求时,我们可以使用 stream_context_set_default() 函数强制指定 HTTP 请求头, 然后使用透明代理,实现隐藏真实 IP 地址。下面是代码: ``` $url = 'https://www.xxx.com/'; $context = stream_context_create( array( 'http'=>array( 'proxy'=>'tcp://127.0.0.1:1080', // 设置代理 'request_fulluri'=>true, 'header'=>"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\r\n" ) ) ); $data = file_get_contents($url,false,$context); echo $data; ``` 需要注意的是,这种方式在对付一些简易的反爬虫技术时比较有用,但是如果网站使用了更高级的限制技术(如验证码、JS 加密等),我们需要采用更复杂的解决方案。最好的解决办法是建立一个合理的程序架构来控制和维护网络爬虫的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值