Браузер успешно открывает ссылку, но не curl и file_get_contents - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь использовать Instagram API.Когда я открываю следующую ссылку в браузере, это вполне нормально, и вы можете щелкнуть по ней и увидеть ответ json: https://www.instagram.com/nasa/?__a=1

Когда я пытался открыть тот же URL через file_get_contents(), я столкнулся с 403Запрещенная ошибка.

Итак, я попытался использовать curl.вот мой код:

$url = "https://www.instagram.com/nasa/?__a=1";
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);


var_dump($result);

Проблема в том, что $result - пустая строка.Когда я пытаюсь получить содержимое с помощью file_get_contents, я сталкиваюсь с 403 Forbidden Error, а когда я пытаюсь получить содержимое с помощью curl, он возвращает пустую строку.

Может ли какое-нибудь тело помочь?Tnx.

Редактировать
Я не получаю 403 Запрещено в моем браузере, потому что я вошел в систему.

1 Ответ

0 голосов
/ 03 февраля 2019

вам необходимо включить поддержку файлов cookie (например, CURLOPT_COOKIEFILE) И войти в систему, прежде чем вы сможете получить доступ к https://www.instagram.com/nasa/?__a=1, и ваш код curl никогда не будет пытаться войти.

здесь вы можете увидеть, как войтив Instagram с помощью PHP: https://stackoverflow.com/a/41684531/1067003

...