【发布时间】:2016-01-13 16:56:55
【问题描述】:
我想在任何位置使用 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 以及拍摄照片的时间。我想知道是否有人知道如何解决这个问题?
【问题讨论】:
-
检查 api.media_search 返回的内容。该错误表示它返回的值超过 2 个,并且它不知道如何解压其余的值。
-
即使我输入了正确的参数,仍然给我一个错误
-
“输入正确的参数”是什么意思?
api.media_search返回两个以上的值。在 python 控制台a, b = (1, 2, 3)中试试这个。它会给你同样的错误。将其重写为a, b, c = (1, 2, 3)将修复错误。 -
media_ids,next,a,b,c,d,e = api.media_search(q,count,lat,lng,min_timestamp,max_timestamp,distance)
-
仍然给我同样的错误
标签: python instagram latitude-longitude instagram-api