PHP中怎么使用HTTP代理。
以下代碼主要圍繞第一次接觸HTTP代理IP的PHP新手來寫。(步驟注釋清晰)
直接把下面示例代碼中的HTTP代理API,替換成你后臺生成的代理API鏈接,就可以跑起來了。
以下是一個示例代碼,只是一個基礎(chǔ)的演示,具體的代碼還是要根據(jù)你業(yè)務(wù)的實(shí)際情況去寫的。
示例代碼中的HTTP代理IP,我使用的是華益云的HTTP代理,注冊就能白嫖1萬個高匿爬蟲IP,有效期是一年,對于調(diào)試代碼來說這個時間是非常的友好。(步驟注釋清晰)
示例代碼demo中同款HTTP代理API-點(diǎn)我免費(fèi)領(lǐng)取10000個高匿IP
打開代理API,獲取里面的IP,使用IP訪問目標(biāo)網(wǎng)站,其實(shí)代碼中就是執(zhí)行這個過程而已,然后加了幾個錯誤判斷有助于代碼的穩(wěn)定運(yùn)行。(步驟注釋清晰)
");
$content = requestGet($url, $userAgent, $px);
break;
}catch(Exception $e){
echo($e);
if (count($outPutProxy)==0){
// 判斷下代理還有沒有,沒有的了就重新獲取下
$outPutProxy = getProxy($proxyUrl, $userAgent);
}
}
}
echo("
");
echo("
");
// htmlspecialchars 使用此函數(shù)不會渲染為網(wǎng)頁
// 這便是響應(yīng)內(nèi)容了
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");
// 設(shè)置要請求的url
curl_setopt($ch, CURLOPT_URL, $url);
// 設(shè)置整體最大超時時間
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
// 設(shè)置最大連接超時時間
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
// 設(shè)置不驗(yàn)證ssl證書
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// 設(shè)置不驗(yàn)證ssl證書
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// 這樣設(shè)置的話我們可以拿到響應(yīng)內(nèi)容并且可以保存在一個變量里
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 設(shè)置請求頭,比如 user-agent,cookie,referer啥的
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
if (count($proxy) != 0){
// 設(shè)置代理
// 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]);
}
// 執(zhí)行發(fā)送請求
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
main()
?>
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
HTTP
+關(guān)注
關(guān)注
0文章
537瀏覽量
35359 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
73968 -
PHP
+關(guān)注
關(guān)注
0文章
462瀏覽量
28622
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
python代碼中使用HTTP代理IP,demo注釋清晰
如何再python代碼中使用HTTP代理IP。 以下代碼主要圍繞第一次接觸HTTP代理IP的python新手來寫。(步驟注釋清晰) 直接把下面示例代碼
python代碼中如何使用HTTP代理
華益云HTTP代理API有效期是一年,也就是說一年內(nèi)這1萬IP用完就沒了,如果你一年都用不完那到時候剩余IP才會被清零,對于調(diào)試代碼來說時間充足靈活。
python代碼中如何使用HTTP代理
HTTP代理就是介于瀏覽器和web服務(wù)器之間的一臺服務(wù)器,連接代理后,瀏覽器不再直接向web服務(wù)器取回網(wǎng)頁,而是向代理服務(wù)器發(fā)出request信號,
http代理的作用如下所示
經(jīng)常使用網(wǎng)絡(luò)的人可能會常常聽到這樣的一個詞:http代理。那么它真正的作用很多人都是模棱兩可的,在這里給大家普及一下在我們大部分人的網(wǎng)絡(luò)活動中,http是比較常見的網(wǎng)絡(luò)協(xié)議,因而
發(fā)表于 09-15 13:00
?899次閱讀
PHP中怎么使用HTTP代理
評論