将没有 api 的 Instagram 主题标签 json 放入谷歌表格的问题

Posted

技术标签:

【中文标题】将没有 api 的 Instagram 主题标签 json 放入谷歌表格的问题【英文标题】:Problem with getting Instagram hashtag json without api into google sheets 【发布时间】:2020-06-21 09:08:55 【问题描述】:

我正在尝试将主题标签 JSON 从 Instagram 获取到 Google 表格。如果我将 URL 放在浏览器中但不使用 google sheet 脚本(过去曾使用过),我会得到 JSON。

这是我的代码:

//Trying to bring back json from instagram
  var tag = 'trivia';
  var url = "https://www.instagram.com/explore/tags/"+tag+"/?__a=1";
  var response = UrlFetchApp.fetch(url).getContentText();
  Logger.log(response);

我明白了:

[20-06-21 12:01:29:962 IDT] <!DOCTYPE html>
<html lang="en" class="no-js not-logged-in client-root">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">

        <title>
Login • Instagram
</title>...

而不是这个(当我在浏览器中放置相同的网址时 - https://www.instagram.com/explore/tags/trivia/?__a=1):这是我实际上需要在谷歌表格中获取的内容。

"graphql":"hashtag":"id":"17841563248119719","name":"trivia","allow_following":true,"is_following":false,"is_top_media_only":false,"profile_pic_url":"https://instagram.fsdv3-1.fna.fbcdn.net/v/t51.2885-15/e15/s150x150/103649320_140557634281171_6362475220936910641_n.jpg?_nc_ht=instagram.fsdv3-1.fna.fbcdn.net&_nc_cat=107&_nc_ohc=QVtIBqOksWoAX9m12su&oh=fcaa18b44873d0b30d46e6c3369535c1&oe=5F1930BA","edge_hashtag_to_media":"count":1284222,"page_info":"has_next_page":true,"end_cursor":"QVFBdkxFeVcxRkFtVjVPaWdNZDhQeHRobHo0dlVfdjhtekVwazRTcjBIOXlwb0NqRndwaDZPZ195ZFdRd2t5RjU1OThiVExXLV9iLU5YUlkwSk5BUmE2LQ==","edges":["node":"comments_disabled":false,"__typename":"GraphSidecar","id":"2336312505423207882","edge_media_to_caption":"edges":["node":"text":"Information about the movie:\n1. Director:\u00a0James Cameron\n2. Box office:\u00a0279 crores\u00a0\n3. Budget:\u00a023.7 crores\u00a0\n4. Film series:\u00a0Avatar Series\n5. IMDB: 7.8/10\n#avatar\u00a0#no.1movie\u00a0#jamescameron\u00a0#trivia\u00a0#facts#didyouknow\u00a0#information\u00a0#actors\u00a0#like\u00a0#follow#horrormovies\u00a0#fashion\u00a0#instamovies\u00a0#entertainment#moviereview\u00a0#bluray\u00a0#series\u00a0#photooftheday\u00a0#dvd\u00a0#bhfyp#marvel\u00a0#moviestar\u00a0#acting\u00a0#action\u00a0#movietime\u00a0#filmes#peliculas\u00a0#theatre\u00a0#oscars\u00a0#moviequotes"],"shortcode":"CBsP9hqDZ3K","edge_media_to_comment":"count":0,"taken_at_timestamp":1592730175,"dimensions":"height":1080,"width":1080,"display_url":"https://instagram.fsdv3-1.fna.fbcdn.net/v/t51.2885-15/e35/104434100_280716426462541_3340933663299493770_n.jpg?_nc_ht=instagram.fsdv3-1.fna.fbcdn.net&_nc_cat=101&_nc_ohc=wYDWOpszIK0AX8sTi3N&oh=980538cb2e588f4467f0769ebae0c30e&oe=5F187460","edge_liked_by":"count":6,"edge_media_preview_like":"count":6,"owner":"id":"37570480318","thumbnail_src":"https://instagram.fsdv3-1.fna.fbcdn.net/v/t51.2885-15/sh0.08/e35/s640x640/104434100_280716426462541_3340933663299493770_n.jpg?_nc_ht=instagram.fsdv3-1.fna.fbcdn.net&_nc_cat=101&_nc_ohc=wYDWOpszIK0AX8sTi3N&oh=97756e538cc662343493f9c6588fdfe2&oe=5F17CA66","thumbnail_resources":["src":"https://instagram.fsdv3-1.fna.

请帮忙,请不要建议获取一个噩梦般的 api - 反正我不需要那么多查询

【问题讨论】:

我遇到了同样的错误。您找到解决方案了吗? 【参考方案1】:

您正在使用两个东西。

    浏览器 是谷歌表格脚本。

您收到错误的原因是 Instagram 机器人在您向它发出请求时实际上会跟踪您的 IP。当您登录浏览器并请求此https://www.instagram.com/explore/tags/"+tag+"/?__a=1 时,您将始终获得数据而不会被阻止。

但现在,在旧的 Instagram 开发工具被弃用后,端点的速率限制已降至每小时 200 个。您被阻止是因为您超过了限制,而 Instagram 机器人需要时间再次重置您的限制。

可能需要 2-3 天或更长时间,具体取决于被阻止的频率。 解决方案是,如果您正确地将会话和 cookie 应用于请求标头,那么它肯定会对您有所帮助。

【讨论】:

这仍然是真的吗?有时通话有效,但我经常得到登录页面,即使使用新 IP

以上是关于将没有 api 的 Instagram 主题标签 json 放入谷歌表格的问题的主要内容,如果未能解决你的问题,请参考以下文章

Instagram 按名称 API 查找 Hashtag

如何搜索 Instagram 标题文本?

获取Instagram的权限public_content

R - Instagram 主题标签抓取

如何在没有 API 的情况下获取 Instagram 中标签的所有图像?

如何在 C# 中从 Instagram API Sharp 返回当前趋势标签