Я пытаюсь получить содержимое страницы из URL.
Это URL, который я пытаюсь получить:
https://www.facebook.com/events/383049449109054/
На данный момент я делаю это следующим образом:
function GetHtmlContents( $url )
{
$user_agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36';
$options = array(
CURLOPT_CUSTOMREQUEST =>"GET", //set request type post or get
CURLOPT_POST => false, //set to GET
CURLOPT_USERAGENT => $user_agent, //set user agent
CURLOPT_COOKIEFILE =>"cookie.txt", //set cookie file
CURLOPT_COOKIEJAR =>"cookie.txt", //set cookie jar
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
это прекрасно работает по большей части, но в полученном html есть ошибка 404 для некоторого контента, который мне нужен:
Сетевой запрос обнаружил ошибку HTTP 404 HTTP_CLIENT_ERROR: 404 Не найдено
Не найдено
Запрошенный URL / api / graphql / не найден на этом сервере.
См. Изображения ниже, чтобы прояснить проблему:
оригинальная страница при посещении ее из браузера в качестве обычного пользователя:
страница при запросе отcurl в php:
Как мне убедиться, что это содержимое также возвращается запросом curl?
Если требуется дополнительная информация, дайте мне знать, чтобы ямогу уточнить!