我以前使用Instagram API按标签,位置等访问公共图像 . 我创建了一个新的应用程序并检索了 access_token
,但这些公共媒体搜索不再返回任何数据 . 但是,它们返回200种状态 .
在文档中,它为 public_content
范围说"applications not accepted",这是这些搜索所必需的 . 因此,似乎Instagram API已被弃用 .
这对我来说没有意义(这就是我在这里发布的原因),因为这些类型的搜索是许多应用程序和服务的核心 . 我也对这些请求如何仍然返回200个响应感到困惑 .
我想知道是否有其他方法可以访问Instagram上的公共内容,例如使用Facebook API . Instagram是否希望完全阻止开发人员访问公共照片?或者这只是将Instagram API功能移植到另一个API,如Facebook?
2 回答
如果您无法使用API,则可以尝试废弃HTML .
您可以通过链接https://www.instagram.com/explore/tags/[TAG]/获取所需标签的html
例如
然后你必须找到从"<script type="文本/ javascript ">window._sharedData ="开始的刺痛 . 将有任何流行的语言容易解析的JSON .
从这些数据中,您可以获得"shortcode"个帖子的列表 . 例如"BfLErJ_hzak"
接下来你可以通过链接https://www.instagram.com/p/[SHORTCODE]/?__a=1获得详细信息
例如 .
它返回JSON数据 . 见例子
如您所见,它包含图片, Headers ,用户信息,用户标记,评论......以及许多其他内容 .
根据你的问题,我会看InstaPy . 它有一个简单的API,它使用Selenium,一个用于浏览器自动化的框架,因此您可以避免API限制 .
安装InstaPy:
创建一个脚本:
运行脚本:
媒体:
作者蒂姆·格罗斯曼(TimGroßmann)写了关于它的媒体article .
作者在EuroPython2017发表了演讲
Talk Python to Me与作者合作过一场精彩的表演 .
如果您不熟悉Python,请查看Puppeteer .
安装Puppeteer:
创建一个脚本:
运行脚本:
如果您想登录,请按照guide进行操作 .