PHP中怎么使用HTTP代理。
以下代码主要围绕第一次接触HTTP代理IP的PHP新手来写。(步骤注释清晰)
直接把下面示例代码中的HTTP代理API,替换成你后台生成的代理API链接,就可以跑起来了。
以下是一个示例代码,只是一个基础的演示,具体的代码还是要根据你业务的实际情况去写的。
示例代码中的HTTP代理IP,我使用的是华益云的HTTP代理,注册就能白嫖1万个高匿爬虫IP,有效期是一年,对于调试代码来说这个时间是非常的友好。(步骤注释清晰)
示例代码demo中同款HTTP代理API-点我免费领取10000个高匿IP
打开代理API,获取里面的IP,使用IP访问目标网站,其实代码中就是执行这个过程而已,然后加了几个错误判断有助于代码的稳定运行。(步骤注释清晰)
");
$content = requestGet($url, $userAgent, $px);
break;
}catch(Exception $e){
echo($e);
if (count($outPutProxy)==0){
// 判断下代理还有没有,没有的了就重新获取下
$outPutProxy = getProxy($proxyUrl, $userAgent);
}
}
}
echo("
");
echo("
");
// htmlspecialchars 使用此函数不会渲染为网页
// 这便是响应内容了
echo(htmlspecialchars($content));
}
function getProxy($proxyUrl, $userAgent){
$proxyIps = "";
$outPutProxy = [];
try{
$proxyIps = requestGet($proxyUrl, $userAgent, array());
# {"code":3002,"data":[],"msg":"error!用户名或密码错误","success":false}
if (strpos($proxyIps, "{", 0) > -1){
throw new Exception($proxyIps);
}
$eachIps = explode("\r\n", $proxyIps);
foreach ($eachIps as $value){
$currentIp = explode(":", $value);
array_push($outPutProxy, array( $currentIp[0], $currentIp[1]));
}
}catch(Exception $e){
echo($e);
}
// var_dump($outPutProxy);
echo("总共获取了");
echo(count($outPutProxy));
echo("个代理");
echo("
");
return $outPutProxy;
}
function requestGet($url, $userAgent, $proxy){
$headerArray = array("User-Agent:$userAgent;");
$ch = curl_init();
# $headerArray =array("Content-type:application/json;","Accept:application/json");
// 设置要请求的url
curl_setopt($ch, CURLOPT_URL, $url);
// 设置整体最大超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
// 设置最大连接超时时间
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
// 设置不验证ssl证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// 设置不验证ssl证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// 这样设置的话我们可以拿到响应内容并且可以保存在一个变量里
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置请求头,比如 user-agent,cookie,referer啥的
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
if (count($proxy) != 0){
// 设置代理
// curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1");
// curl_setopt($ch, CURLOPT_PROXYPORT, "10809");
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]);
}
// 执行发送请求
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
main()
?>
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
HTTP
+关注
关注
0文章
511浏览量
31489 -
代码
+关注
关注
30文章
4823浏览量
68983 -
PHP
+关注
关注
0文章
454浏览量
26770
发布评论请先 登录
相关推荐
python代码中使用HTTP代理IP,demo注释清晰
如何再python代码中使用HTTP代理IP。 以下代码主要围绕第一次接触HTTP代理IP的python新手来写。(步骤注释清晰) 直接把下面示例代码
python代码中如何使用HTTP代理
华益云HTTP代理API有效期是一年,也就是说一年内这1万IP用完就没了,如果你一年都用不完那到时候剩余IP才会被清零,对于调试代码来说时间充足灵活。
python代码中如何使用HTTP代理
HTTP代理就是介于浏览器和web服务器之间的一台服务器,连接代理后,浏览器不再直接向web服务器取回网页,而是向代理服务器发出request信号,
http代理的作用如下所示
经常使用网络的人可能会常常听到这样的一个词:http代理。那么它真正的作用很多人都是模棱两可的,在这里给大家普及一下在我们大部分人的网络活动中,http是比较常见的网络协议,因而
发表于 09-15 13:00
•507次阅读
评论