wake-up-neo.com

Was ist der neue instagram json Endpunkt?

Instagram hat offene Daten unter dem Endpunkt https://www.instagram.com/<username>/?__a=1 Als json bereitgestellt. Dies hat sich über Nacht geändert, der Endpunkt ist nicht mehr verfügbar. Was ist der neue Endpunkt oder was könnte eine Alternative dazu sein?

Danke im Voraus!

10

Der Endpunkt existiert nicht mehr. Facebook schränkt APIs aufgrund von Skandalen ein. Die Daten sind natürlich immer noch da, das Frontend von Instagram benötigt sie. Die Alternative besteht also momentan darin, die Seite zu durchsuchen und die JSON-Daten dort zu finden. So mache ich es:

  • Führen Sie einen http-Befehl aus, um zu https://www.instagram.com/<username> Zu gelangen.
  • Suchen Sie nach dem Tag script, dessen Text mit window._sharedData = Beginnt. Sie können dafür reguläre Ausdrücke oder eine Scraping-Bibliothek verwenden.
  • Der Rest des Textes (mit Ausnahme des ; Am Ende) sind die von Ihnen gewünschten json-Daten.
  • Umwandeln Sie den stringifizierten Json in Json, um wie zuvor darauf zuzugreifen.
  • Das erste Element im Schlüssel 'ProfilePage' im Schlüssel 'entry_data' entspricht genau dem vom alten Endpunkt zurückgegebenen json.

Hier ist ein Beispiel mit Python:

import requests
from bs4 import BeautifulSoup
import re
import json

r = requests.get('https://www.instagram.com/github/')
soup = BeautifulSoup(r.content)
scripts = soup.find_all('script', type="text/javascript", text=re.compile('window._sharedData'))
stringified_json = scripts[0].get_text().replace('window._sharedData = ', '')[:-1]

json.loads(stringified_json)['entry_data']['ProfilePage'][0]

Out[1]:
{u'graphql': {u'user': {u'biography': u'How people build software.',
u'blocked_by_viewer': False,
...
}
19

Falls Sie nach dem regulären Ausdruck suchen:

<script type="text\/javascript">window[.]_sharedData = {[\s\S]*};<\/script>

6
Emixam23

Dieser Endpunkt funktioniert immer noch, aber Sie müssen gültige Cookies aus einer aktuell angemeldeten Sitzung haben.

0
Mike McCartin