[英]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.