【问题标题】:Grab instagram photo based on hashtags根据主题标签抓取 Instagram 照片
【发布时间】:2012-11-27 01:33:18
【问题描述】:

我是 instagram 的新手,我的任务是编写一个应用程序以根据某个主题标签抓取 instagram 照片上传。这意味着如果应用程序启动并搜索主题标签“#awesomeevent”,任何上传带有该主题标签的照片的人都会自动将其存储到我们的数据库中。

应用程序的工作方式应该类似于http://statigr.am/tag/,但它应该将照片存储到数据库中,而不是显示照片。

这样做的过程是什么。从头到尾都有这个的任何教程。甚至涵盖如何从头开始创建 Instagram 应用程序。任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: instagram hashtag


    【解决方案1】:

    我们开发人员经常忽略的内容是 API 条款和条件。我自己也去过。

    API 使用条款

    在您开始使用 API 之前,我们想告诉您一些准则。请务必阅读完整版API Terms of Use

    使用条款。以下是您将阅读的内容:

    • Instagram 用户拥有自己的图片。您有责任确保尊重这一权利。

    • 您不能在应用程序中使用 Instagram 名称。

    • 未经用户明确同意,您不能使用 Instagram API 抓取或存储用户的图片。

    • 您无法复制 Instagram.com 的核心用户体验

    • 不要滥用 API。太多请求太快会关闭您的访问权限

    但是,条款中的一部分还指出:

    • 您不得缓存或存储任何 Instagram 用户照片,除非是为了提供您所提供的服务的合理期限 提供给 Instagram 用户。

    希望这是您真正开始编码和存储图像之前的开始。

    API 使用条款:http://instagram.com/about/legal/terms/api/

    API:http://instagram.com/developer/

    【讨论】:

    • Bhavik 虽然这是真的,但我不确定 Instagram 是否会将返回的 JSON 仅存储在本地文件/数据库中,然后改为查询存储的 JSON。没有存储实际图像,所有数据仍然指向 Instagram,但是您需要每 10-15 分钟左右刷新一次此缓存,或者可能运行后台进程以定期将新数据获取到缓存中。
    【解决方案2】:

    首先,您应该咨询instagram api

    至于你需要的具体api是:

    /tags/tag-name/media/recent
    

    例如,如果您想从标签#awesomeevent 中查找图像,您将执行 api 查询:

    https://api.instagram.com/v1/tags/awesomeevent/media/recent?access_token=ACCESS-TOKEN
    

    【讨论】:

    • 但是,我如何创建一个应用程序来做到这一点,而不是输入 URL。
    • @BryanChew :您可以使用 jQuery.ajax 读取该 URL 生成的 json 文件。只要确保你使用dataType: "jsonp"
    【解决方案3】:

    我想看看 Instagram 提供的两个库。 ruby 库位于https://github.com/Instagram/instagram-ruby-gem,python 库位于https://github.com/Instagram/python-instagram

    如果您使用任一库进行编程,它们似乎都有一些示例可以帮助您入门。

    就存储问题而言,您能否改为存储图像的 URL 地址而不是实际图像本身? API返回JSON信息,返回图片的URL。

    希望对您有所帮助。

    【讨论】:

      【解决方案4】:

      您可以使用以下 ruby​​ 脚本来检索图像并将它们保存到文件中。然后,您可以引用数据库中的文件或将最后一个块替换为您的特定数据库实现的代码。在不知道您的数据库类型和架构的情况下,没有人可以告诉您如何向其中添加内容。

      require "instagram"
      require "restclient"
      
      Instagram.configure do |config|
        config.client_id = INSTAGRAM_CLIENT_ID 
        config.client_secret = INSTAGRAM_CLIENT_SECRET
      end
      
      instagram_client = Instagram.client(:access_token => INSTAGRAM_ACCESS_TOKEN)
      tags = instagram_client.tag_search('cat')
      urls = Array.new
      
      for media_item in instagram_client.tag_recent_media(tags[0].name)
        urls << media_item.images.standard_resolution.url
      end
      
      urls.each_with_index do |url, idx|
        image = RestClient.get(url)
        path = Dir.pwd + "/#{idx}.jpg"
        File.open(path, 'w') {|f| f.write(image) }
      end
      

      【讨论】:

      • 现在不工作,因为 Instagram 不返回标签照片
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2020-10-31
      • 2016-09-23
      相关资源
      最近更新 更多