json - 什么是新的 instagram json 端点?

标签 json api instagram instagram-api endpoint

Instagram曾经在端点https://www.instagram.com/<username>/?__a=1下将开放数据公开为json .这在一夜之间发生了变化,端点不再可用。什么是新端点或什么可以替代它?

提前致谢!

最佳答案

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

  • 做一个 http 到 https://www.instagram.com/<username> .
  • 寻找 script文本开头的标签 window._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,
    ...
    }
    

    关于json - 什么是新的 instagram json 端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49788905/

    相关文章:

    web-services - 在 RallyDev API v2.0 中使用 HeirarchicalRequirements 和缺陷获取任务名称/ID

    ios - Instagram 公共(public)媒体 API

    php - 在php中将数据从sql转换为json文件

    json - 类似于 NodeJS 的 Typesafe Config

    asp.net - 用于解析美国邮政地址的免费 API?

    api - 既然 Robinhood 再次更改了 API,现在有什么方法可以获得不记名 token 吗?

    php - 使用脚本将照片上传到 instagram

    ios - instagram iphone Hook 媒体 ID?

    android - 使用 Retrofit 时手动解析部分响应

    c# - 将Json反序列化为对象异常