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瀏覽量
31418 -
代碼
+關注
關注
30文章
4823瀏覽量
68904 -
PHP
+關注
關注
0文章
454瀏覽量
26743
發布評論請先 登錄
相關推薦
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
?505次閱讀
評論