簡體   English   中英

在PHP上使用CURL解析任何網頁

[英]Parsing any webpage using CURL on PHP

是否可以編寫一個PHP函數以與瀏覽器相同的方式返回任何可能鏈接的HTML字符串? 鏈接示例:“ http://google.com ”,“”,“ mywebsite.com”,“ somesite.com/.page/nn/?s=b#85452”、“lichess.org”

我試過的

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$data = curl_exec($curl);
if(curl_errno($curl)){
    echo 'Curl error: ' . curl_error($curl);
}
echo $data;
curl_close($curl);

可悲的是,對於某些鏈接,由於SSL或其他任何原因,此代碼返回空白頁,但對於某些鏈接,它可以工作。

還是CURL可以替代嗎? 我只是不明白為什么php不能開箱即用地檢索任何html。

如果您正在運行舊版本的PHP,則SSL站點上的CURL可能會失敗。 確保您的操作系統和PHP版本是最新的。

您也可以選擇使用與URL一起使用的file_get_contents() ,並且如果您只想發出簡單的GET請求,通常這是一個更簡單的選擇。

$html = file_get_contents('https://www.google.com/');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM