如何在PHP代碼中使用HTTP代理IP。
以下代碼主要圍繞第一次接觸HTTP代理IP的PHP新手來寫。(步驟注釋清晰)
直接把下面示例代碼中的HTTP代理API,替換成你后臺生成的代理API鏈接,就可以跑起來了。
以下是一個示例代碼,只是一個基礎的演示,具體的代碼還是要根據你業務的實際情況去寫的。
示例代碼中的HTTP代理IP,我使用的是華益云的HTTP代理,注冊就能白嫖1萬個高匿爬蟲IP,有效期是一年,對于調試代碼來說這個時間是非常的友好。(步驟注釋清晰)
華益云-企業級HTTP爬蟲代理IP供應商-點我免費領取示例代碼demo中同款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代理
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
HTTP
+關注
關注
0文章
511瀏覽量
31519 -
代碼
+關注
關注
30文章
4827瀏覽量
69052 -
PHP
+關注
關注
0文章
454瀏覽量
26788
發布評論請先 登錄
相關推薦
如何在EDK中使用自己的 IP核?
如何在EDK中使用自己的 IP核呢? 這是很多人夢寐以求的事情。然而在EDK以及ISE的各種文檔中對此卻遮遮掩掩,欲語還休。
發表于 02-11 13:35
?2185次閱讀
HTTP代理應該怎么選擇?
在互聯網中使用HTTP代理IP確實給我們的日常生活帶來很多便利,也正因為如此,市面上的同款產品越來越多,很多用戶在選擇的時候難免陷入困境,不知道該如何下手才好。
發表于 01-04 17:37
?391次閱讀
python代碼中如何使用HTTP代理
華益云HTTP代理API有效期是一年,也就是說一年內這1萬IP用完就沒了,如果你一年都用不完那到時候剩余IP才會被清零,對于調試代碼來說時間
評論