【问题标题】:How can I scrape instagram followers?如何抓取 Instagram 关注者?
【发布时间】:2018-04-04 20:34:13
【问题描述】:

有很多网站,您可以从 Instagram 个人资料中获取所有关注者的列表。 例如Jennifer Lopez的个人资料。如果我点击关注者并向下滚动孔列表,我看到大约 1000 个用户。有没有办法获得所有关注者的列表,或者 1 万到 10 万用户之间的列表?其他人是怎么做到的?

这里有几个页面似乎可以工作:

crowdbabble

Instagram Scraper

magimetrics

如果您能帮助我,我将不胜感激!

【问题讨论】:

  • 一般来说,“我如何?”问题在 SO 上并没有特别好。如果您就追随者抓取解决方案的实施提出更具体的问题,您可能会收到更好的答复。

标签: c# selenium web-scraping instagram


【解决方案1】:

我相信您看到的大多数页面都在使用 Instagram API(或下面描述的方法)。但是,如果没有他们满意的应用程序,这有点难以访问。据我了解,您必须先创建应用程序才能知道是否可以访问,这有点愚蠢。我猜他们是在试图阻止新用户使用它,同时让已经在使用它的人继续使用它。

他们的 API 文档似乎缺少很多早期可用的内容,并且现在没有端点来获取关注者(这可能是文档页面暂时错误:https://www.instagram.com/developer/endpoints/)。

您可以像 Instagram 网页一样获得关注者。但是,它似乎只有在您一次请求最多约 5000-6000 个关注者时才有效,而且您可能会受到速率限制。

他们正在使用查询参数query_hashvariableshttps://www.instagram.com/graphql/query/ 发出GET 请求。

query_hash 我猜是变量的散列。但是,我可能是错的,因为即使您更改变量,它也会继续工作。相同的哈希可能不会永远有效,因此您可能必须以与 Instagram 页面相同的方式进行操作。即使您没有登录,您也会得到它,所以我认为这不会很困难。

variables 参数是一个 URL 编码的 JSON 对象,其中包含您的搜索变量。 JSON 应如下所示:

{
  "id":"305701719",
  "first":20
}

id 是用户的 ID。 first 是您想要的关注者数量。

当您对其进行编码时,该 URL 将如下所示。 https://www.instagram.com/graphql/query/?query_hash=bfe6fc64e0775b47b311fc0398df88a9&variables=%7B%22id%22%3A%22305701719%22%2C%22first%22%3A20%7D

这将返回一个像这样的 json 对象:

"data": {
  "user": {
    "edge_followed_by": {
      "count": 73785285,
      "page_info": {
        "has_next_page": true,
        "end_cursor": "AQDJzGlG3jGfM6KGYF7oOhlMqDm9_-db8DW_8gKYTeKO5eIca7cRqL1ODK1SsMA33BYBbAZz3BdC3ImMT79a1YytB1j9z7f-ZaTIkQKEoBGepA"
      },
      "edges": [
        {
          "node": {}
        }
      ]
    }
  }
}

edges 数组将包含一个节点元素列表,其中包含关注您搜索的人的用户信息。

要获得下一个 x 关注者,您必须将变量查询中使用的 json 更改为如下内容:

{
  "id":"305701719",
  "first":10,
  "after":"AQDJzGlG3jGfM6KGYF7oOhlMqDm9_-db8DW_8gKYTeKO5eIca7cRqL1ODK1SsMA33BYBbAZz3BdC3ImMT79a1YytB1j9z7f-ZaTIkQKEoBGepA"
}

after 将是您在上一个请求中收到的 end_cursor

您的新网址将如下所示:https://www.instagram.com/graphql/query/?query_hash=bfe6fc64e0775b47b311fc0398df88a9&variables=%7B%22id%22%3A%22305701719%22%2C%22first%22%3A10%2C%22after%22%3A%22AQDJzGlG3jGfM6KGYF7oOhlMqDm9_-db8DW_8gKYTeKO5eIca7cRqL1ODK1SsMA33BYBbAZz3BdC3ImMT79a1YytB1j9z7f-ZaTIkQKEoBGepA%22%7D

这样你可以一直循环直到has_next_page 在响应中是false

【讨论】:

  • 您知道这些端点的速率限制是多少吗?我找不到任何有关它的文档。
【解决方案2】:

2018 年 8 月 23 日编辑

Instagram 似乎已阻止任何滚动/查询哈希请求以获取帖子上的关注者列表/喜欢者列表,至少在桌面上,即使是您自己的帐户也是如此。

https://developers.facebook.com/blog/post/2018/01/30/instagram-graph-api-updates/

虽然仍然可以通过手机使用,但应该可以使用 Appmiumhttp://appium.io/

也许一些reverse app engineering 也可能是关键,如果有任何想法的话: https://www.blackhatworld.com/seo/journey-instagram-app-reverse-engineer.971468/

编辑 25/08/2018

它似乎又回来了……如果有任何关于它的信息吗?

【讨论】:

    猜你喜欢
    • 2021-01-23
    • 2016-09-11
    • 1970-01-01
    • 2018-08-09
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    相关资源
    最近更新 更多