PHPを使用してDOMツリーにWebサイトをロードしています。を使用して送信されるユーザーエージェントを変更する方法はありDOMDocument::loadHTMLFile()
ますか?
function parseThis($url)
{
$html = new DOMDocument();
$html->loadHtmlFile( $url );
return $html
}
PHPを使用してDOMツリーにWebサイトをロードしています。を使用して送信されるユーザーエージェントを変更する方法はありDOMDocument::loadHTMLFile()
ますか?
function parseThis($url)
{
$html = new DOMDocument();
$html->loadHtmlFile( $url );
return $html
}
user_agent
の値を変更します。これは、などphp.ini
の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);
サーバー構成で許可されている場合は.htaccess
、設定することでApacheでも同じことができます。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);