我想在任何位置使用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。我想知道是否有人知道如何解决这个问题?
答案 0 :(得分:1)
论证的顺序很重要。如果查看at the source,您将看到需要按以下顺序传递参数:
qplot
尝试使用其名称传递参数以避免此问题。您已经为["q", "count"] + ['lat', 'lng', 'min_timestamp', 'max_timestamp', 'distance']
执行了此操作,因此请执行此操作。
我不确定max_tag_id=max_tag
。它似乎不是该方法的参数。你比我更熟悉API客户端,所以我把它留给你。