Instagramは、エンドポイントの下でjsonとしてオープンデータを公開していましたhttps://www.instagram.com/<username>/?__a=1
。これは一晩で変化し、エンドポイントはもう利用できません。新しいエンドポイントとは何ですか、またはこれに代わるものは何ですか?
前もって感謝します!
エンドポイントはもう存在しません。 FacebookはスキャンダルのためにAPIを制限しています。もちろん、データはまだそこにあり、Instagramのフロントエンドはそれを必要としているので、現時点での代替手段は、ページをスクレイプしてそこにあるjsonデータを見つけることです。ここに私がそれをする方法があります:
https://www.instagram.com/<username>
にアクセスします。window._sharedData =
で始まるscript
タグを探します。これには、正規表現またはスクレイピングライブラリを使用できます。;
を除く)は、必要なJSONデータです。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,
...
}
正規表現を探している場合:
<script type="text\/javascript">window[.]_sharedData = {[\s\S]*};<\/script>
このエンドポイントは引き続き機能しますが、現在ログインしているセッションからの有効なCookieが必要です。