Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新的instagram json端点是什么?_Json_Api_Instagram_Instagram Api_Endpoint - Fatal编程技术网

新的instagram json端点是什么?

新的instagram json端点是什么?,json,api,instagram,instagram-api,endpoint,Json,Api,Instagram,Instagram Api,Endpoint,Instagram用于在端点下以json形式公开开放数据https://www.instagram.com//?__a=1。这在夜间发生了变化,端点不再可用。新的端点是什么,或者有什么替代方案 提前谢谢 端点不再存在。Facebook因为丑闻而限制API。当然,数据仍然在那里,Instagram的前端需要它,所以现在的替代方法是抓取页面并在那里找到json数据。我是这样做的: 是否使用http访问https://www.instagram.com/ 查找文本以窗口开头的脚本标记。\u shar

Instagram用于在端点下以json形式公开开放数据
https://www.instagram.com//?__a=1
。这在夜间发生了变化,端点不再可用。新的端点是什么,或者有什么替代方案


提前谢谢

端点不再存在。Facebook因为丑闻而限制API。当然,数据仍然在那里,Instagram的前端需要它,所以现在的替代方法是抓取页面并在那里找到json数据。我是这样做的:

  • 是否使用http访问
    https://www.instagram.com/
  • 查找文本以
    窗口开头的
    脚本
    标记。\u sharedData=
    。您可以为此使用正则表达式或刮取库
  • 文本的其余部分(除了末尾的
    )是您想要的json数据
  • 将字符串化的json转换为json,以便像以前一样访问它
  • “entry_data”键中的“ProfilePage”键中的第一个元素与旧端点返回的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,
...
}

如果您正在寻找正则表达式:


window[.]\u sharedData={[\s\s]*}

此端点仍然有效,但您必须拥有当前登录会话中的有效cookie。

https://www.instagram.com//?__a=1
https://www.instagram.com/<username>/?__a=1

工作正常,但您必须登录

您可以像instagram scraper软件包一样创建会话

您不需要提供用户名和密码。下面的代码段将创建一个匿名会话

导入请求
导入json
尝试:
从urllib.parse导入urlparse
除恐怖外:
从URLPRASE导入URLPRASE
基本URL=https://www.instagram.com/'
CHROME_WIN_UA='Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML,像Gecko)CHROME/67.0.3396.87 Safari/537.36'
会话=请求。会话()
session.headers={'user-agent':CHROME\u WIN\u UA,'Referer':BASE\u URL}
session.cookies.set('ig_pr','1')
req=会话.get(基本URL)
session.headers.update({'X-CSRFToken':req.cookies['CSRFToken']})
url=”https://www.instagram.com/instagram/?__a=1"
response=session.get(url,cookies=,headers={'Host':urlparse(url.hostname},stream=False,timeout=90)
打印(response.json())

我面临着同样的问题:(你犯了什么错误?我发现公共账户目前正在运行:@nicolarirobles该url在过去几年中似乎有效/无效。)days@Alex是的,它有时会起作用,但后来又起作用了。。。