2016-01-13 121 views
0

我想從使用Python中的任何位置內的Instagram API如何從Instagram API檢索圖像?

這裏我的代碼抓取圖片:

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

檢查api.media_search返回的內容。該錯誤表示它返回的值超過2個,並且不知道如何解開其餘部分。 – nikihub

+0

即使我輸入了正確的參數,仍然給我一個錯誤 –

+0

你是什麼意思「把正確的參數」? 'api.media_search'會返回更多這兩個值。在python控制檯'a,b =(1,2,3)'中試試這個。它會給你同樣的錯誤。將其重寫爲'a,b,c =(1,2,3)'將修復錯誤。 – nikihub

回答

1

參數的順序很重要。如果你看看at the source,你會看到,你需要傳遞參數按以下順序:

["q", "count"] + ['lat', 'lng', 'min_timestamp', 'max_timestamp', 'distance'] 

試着用自己的名字來避免這個問題通過你的論點。你已經爲max_tag_id=max_tag做了這個,所以剩下的就這樣做了。不過,我不確定access_token。它似乎不是該方法的參數。你比我更熟悉API客戶端,所以我把它留給你。

+0

仍然給我一個錯誤:( –

+0

raise InstagramAPIError(status_code, content_obj ['meta'] ['error_type'],content_obj ['meta'] ['error_message']) instagram.bind.InstagramAPIError:(400)APIInvalidParametersError-missing lat and lng –

+0

你現在如何調用'media_search'? – 2rs2ts