Я использую PHP для загрузки сайта в DOM Tree. Есть ли способ изменить агент пользователя, который отправляется с использованием 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);
То же самое можно сделать и в 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);