如何提取Instagram数据

问题描述 投票:4回答:4

我正在尝试构建一个Instagram帐户的Microsoft Access数据库,并希望提取以下数据,其中包括:

  • 用户名
  • 粉丝数量
  • 接下来的人数
  • 帖子数量(及其日期)
  • 喜欢图片的数量
  • 图片评论数量

我在构建数据库时没有任何问题,但想知道是否有更简单/更快的方式来获取所有信息,而无需查看每个单独的图片/帐户并选择信息。

Microsoft Access是最好的方法吗?有更好的解决方案吗?

web-scraping instagram
4个回答
7
投票

好吧,如果这个问题有'web-Scraping'关键字,那么请允许我在这里分享一些信息..

Instagram在其html源代码中有一个JavaScript JSON数据,同时通过链接显示用户的信息,如https://www.instagram.com/user-account/。您可以使用任何脚本语言解析这些数据,并可以获取JSON数据。

Instagram在单一请求中只显示10个帖子,您可以看到用户的基本信息,如用户名,传记,没有帖子,没有关注者和关注者。但是,如果我们需要所有喜欢和评论以及所有图片或喜欢和评论每张照片的帖子。然后我们必须点击他们的'Load more'按钮。

加载更多请求Ajax Call包括'?max_id',它为您提供接下来的10个帖子信息。所以你必须创建一个Post循环来发送/获取休息信息,直到'max_id'为空或为空。

示例请求:第一页,https://www.instagram.com/demo-user/

下一个数据请求:https://www.instagram.com/demo-user/?max_id=1533276522

等等...

最近我有一些空闲时间,我在Instagram上生气;)所以只是制作了一个脚本来解决所有这些问题。这适用于PHP和代码都有很好的评论,所以我认为这不会导致任何问题,以了解应用程序流。您可以看到脚本,它是如何工作的,并且可以使用任何其他语言的逻辑。

这来自这个GitHub Repository Code

&..是的,它不需要Instagram API或者.. :)


4
投票

为什么不直接用url查看json数据:

https://www.instagram.com/ /?__一个= 1


3
投票

你一定要查看Instagram的API,它可以为你提供你想要抓取的所有公共信息。您只需要编写一个脚本来进行正确的API调用(如下所示)。

来自Instagram的网站:

我们尽力让所有网址都是RESTful。每个端点(URL)可以支持四种不同的http动词之一。 GET请求获取有关对象的信息,POST请求创建对象,PUT请求更新对象,最后DELETE请求将删除对象。

当您在代码中使用URL时,您只需要准备相关帐户的ACCESS-TOKEN值,并且能够解包Instagram返回给您的每个GET请求的json。如果数据不是直接可用的,您可以随时间接备份。 - 帐户名称 - 关注者数量 - 关注的人数

这是一个很好的起点:https://www.instagram.com/developer/endpoints/users/#get_users

以下是如何在python中调用API:

#Python 2.7.6
#RestfulClient.py

import requests
from requests.auth import HTTPDigestAuth
import json

# Replace with the correct URL
url = "http://api_url"

# It is a good practice not to hardcode the credentials. So ask the user to enter credentials at runtime
myResponse = requests.get(url,auth=HTTPDigestAuth(raw_input("username: "), raw_input("Password: ")), verify=True)
#print (myResponse.status_code)

# For successful API call, response code will be 200 (OK)
if(myResponse.ok):

    # Loading the response data into a dict variable
    # json.loads takes in only binary or string variables so using content to fetch binary content
    # Loads (Load String) takes a Json file and converts into python data structure (dict or list, depending on JSON)
    jData = json.loads(myResponse.content)

    print("The response contains {0} properties".format(len(jData)))
    print("\n")
    for key in jData:
        print key + " : " + jData[key]
else:
  # If response code is not ok (200), print the resulting http error code with description
    myResponse.raise_for_status()

0
投票

这个回购拥有一切:https://github.com/rarcega/instagram-scraper

请正确阅读选项。

instagram-scraper incindia -m 500 --media-metadata --include-location --media-types none给了我一个json,它有:

  • 媒体形象的网址,
  • 媒体类型,观看次数,
  • 喜欢的数量,评论的数量( - 评论也给你所有评论)

还有更多让我去探索的地方。

您也可以下载所有媒体

© www.soinside.com 2019 - 2024. All rights reserved.