如何从Instagram API中检索图像?

时间:2016-01-13 16:56:56

标签: python instagram latitude-longitude instagram-api

我想在任何位置使用Instagram API抓取图片

这是我在python中的代码:

  from instagram.client import InstagramAPI
    client_id = ********
    client_secret = ******* 
    access_token = *******
    client_ip = *******

    q=None
    count=100
    lat=51.51608899635712
    lng=0.09891956707558282
    min_timestamp = '2015-12-07 22:00:00'
    max_timestamp = '2015-12-08 22:00:00'
    distance=1000


    api = InstagramAPI(client_id=client_id, client_secret=client_secret, client_ips= client_ip,access_token= access_token)

    media_all_ids = []
  media_id = api.media_search(q,count=20) + api.media_search(lat=lat, lng=lng, min_timestamp=min_timestamp, max_timestamp=max_timestamp, distance=distance)

    temp,max_tag = next.split('max_tag_id=')
    max_tag=str(max_tag)

    for media_id in media_ids:
        media_all_ids.append(media_id.id)

    counter = 1

    while next and counter <3 :
        more_media, next = api.media_search(lat, lng, min_timestamp, max_timestamp, distance, max_tag_id=max_tag)
        temp,max_tag=next.split('max_tag_id=')
        max_tag = str(max_tag)
        for media_id2 in more_media:
             media_all_ids.append(media_id2.id)
        print (len(media_all_ids))
        counter+=1

    media_all_ids=list(OrderedDict.fromkeys(media_all_ids))
    print (len(media_all_ids))

主要问题是,它给了我同样的错误,我无法解决这个问题:

  content, next = self._do_api_request(url, method, body, headers)
in _do_api_request
    raise InstagramAPIError(status_code, content_obj['meta']['error_type'], content_obj['meta']['error_message'])
instagram.bind.InstagramAPIError: (400) APIInvalidParametersError-missing lat and lng

我想在他们的图片链接和拍摄照片的时间打印出他们的ID。我想知道是否有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

论证的顺序很重要。如果查看at the source,您将看到需要按以下顺序传递参数:

qplot

尝试使用其名称传递参数以避免此问题。您已经为["q", "count"] + ['lat', 'lng', 'min_timestamp', 'max_timestamp', 'distance'] 执行了此操作,因此请执行此操作。

我不确定max_tag_id=max_tag。它似乎不是该方法的参数。你比我更熟悉API客户端,所以我把它留给你。