Instagram блокирует доступ HTTP / CURL / file_get_contents к профилям publi c с местоположения моего веб-сервера и перенаправляет на страницу входа - PullRequest
0 голосов
/ 10 июля 2020

Итак, я в основном прочитал все топи c в StackOverflow относительно синтаксического анализа фида Instagram с использованием PHP, и я не могу заставить его работать.

Когда я открываю https://instagram.com/harvestcoffeebrewers/?__a=1 в моем браузере, даже в режиме инкогнито, он возвращает именно то, что я хочу (поэтому для этого не требуется токен API или вход в Instagram).

Однако, когда я пытаюсь file_get_contents или cURL тот же URL (и я буквально пробовал ВСЕ параметры настройки CURL, с разными пользовательскими агентами, следить за местоположениями, притворяясь ботом-роботом, et c. et c.), это не работает: Instagram возвращает HTML их страницы входа, которая впоследствии отображает только значок Instagram в фоновом режиме.

Итак, один топи c, который я обнаружил, предположил, что, возможно, мой веб-хост (Strato, немецкий) был заблокирован Instagram для выполнения запросов CURL / file_get_content? Это действительно то, что происходит?

РЕДАКТИРОВАТЬ: Похоже, что действительно Instagram НЕ позволяет мне просматривать профили Instagram на моем веб-сервере (Strato, Германия)

image

<?php

// CURL METHOD:

$url = 'https://instagram.com/harvestcoffeebrewers/?__a=1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "ABACHOBot");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json') );
$data = curl_exec($ch);
curl_close($ch);

var_dump($data); // Show the response

// FILE_GET_CONTENTS method

$instaResult = file_get_contents('https://www.instagram.com/harvestcoffeebrewers/?__a=1');
$insta = json_decode($instaResult);

var_dump($insta);

?>

...