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!
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:
https://www.instagram.com/<username>
Zu gelangen.script
, dessen Text mit window._sharedData =
Beginnt. Sie können dafür reguläre Ausdrücke oder eine Scraping-Bibliothek verwenden.;
Am Ende) sind die von Ihnen gewünschten json-Daten.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,
...
}
Falls Sie nach dem regulären Ausdruck suchen:
<script type="text\/javascript">window[.]_sharedData = {[\s\S]*};<\/script>
Dieser Endpunkt funktioniert immer noch, aber Sie müssen gültige Cookies aus einer aktuell angemeldeten Sitzung haben.