Я знаю, что это довольно старая тема, но думал поделиться некоторыми идеями.
Скорее всего, если вы не получаете какой-либо контент при доступе к веб-странице, возможно, он не хочет, чтобы вы могли получить этот контент. Так как же определить, что скрипт пытается получить доступ к веб-странице, а не человек? Обычно это заголовок User-Agent
в HTTP-запросе, отправляемом на сервер.
Таким образом, чтобы заставить веб-сайт думать, что сценарий доступа к веб-странице также человек , необходимо изменить заголовок User-Agent
во время запроса. Большинство веб-серверов, скорее всего, разрешат ваш запрос, если вы установите для заголовка User-Agent
значение, которое используется некоторым распространенным веб-браузером.
Список общих пользовательских агентов, используемых браузерами, приведен ниже:
Хром: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
Firefox: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0'
и т.д ...
$context = stream_context_create(
array(
"http" => array(
"header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
)
)
);
echo file_get_contents("www.google.com", false, $context);
Этот кусок кода подделывает пользовательский агент и отправляет запрос на https://google.com.
Ссылки
Ура!