使用PHP來加載DOM樹中的網站。有沒有辦法修改使用DOMDocument::loadHTMLFile()
發送的用戶代理?DOMDocument :: loadHTMLFile()修改用戶代理
function parseThis($url)
{
$html = new DOMDocument();
$html->loadHtmlFile($url);
return $html
}
使用PHP來加載DOM樹中的網站。有沒有辦法修改使用DOMDocument::loadHTMLFile()
發送的用戶代理?DOMDocument :: loadHTMLFile()修改用戶代理
function parseThis($url)
{
$html = new DOMDocument();
$html->loadHtmlFile($url);
return $html
}
變化php.ini
的user_agent
值,應在任何利用所述HTTP流包裝等DOMDocument::loadHtmlFile(), file_get_contents()
的發送等
$fake_user_agent = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11";
ini_set('user_agent', $fake_user_agent);
同樣也可以在一個Apache .htaccess
通過來完成如果您的服務器配置允許,請設置php_value user_agent
。
嗯,我認爲最好的方法是以不同的方式檢索內容並在之後加載文檔。你可以用cURL來做到這一點。
$useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$ch = curl_init();
// set user agent
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab content from the website
$content = curl_exec($ch);
// load the content in your dom
$html = new DOMDocument();
$html->loadHTML($content);
哦有趣,不知道這種可能性 – j0k 2012-07-16 06:28:40