2014-10-14 2 views
2


특정 해시 태그가있는 대부분의 그림을 게시 한 10 명의 Instagram 사용자를 찾고 싶습니다. 해시 태그 검색시 Python 및 Instagram API 오류


내가 파이썬 2.7를 사용하고, 나는이 쓴 : 얼마나 많은 사진이 해시 태그와 함께 인스 타 그램에있는 내가 알아 본 다음 조각에

import urllib, json 
from collections import Counter 

def GetNumberPics(): 
    urlInstagram = "https://api.instagram.com/v1/tags/HASHTAG?access_token=ACCESSTOKEN" 
    response = urllib.urlopen(urlInstagram) 
    return json.loads(response.read())['data']['media_count'] 

def GetPics(url): 
    urlInstagram = url 
    response = urllib.urlopen(urlInstagram) 
    pics = json.loads(response.read()) 
    return pics 


을, 나는 20이 때문에하여 분할, 내가 이해하는 한, 각 API 호출에서 수신 할 사진 데이터의 수입니다. 그래서 이렇게하면 모든 그림의 데이터를 가져 오기 위해 API 호출을 몇 번해야 하는지를 이해해야합니다. 모든 사용자의 목록 만들기

nPics = GetNumberPics() 
print nPics 
times = nPics/20 
print times 

FirstUrl = 'https://api.instagram.com/v1/tags/HASHTAG/media/recent?client_id=CLIENTID' 
pics = GetPics(FirstUrl) 


:

nextUrl = pics['pagination']['next_url'] 


만들기 : 다음 URL을 받고

users = [] 
for i in range(20): 
    users.append(pics['data'][i]['user']['username']) 

를, 최초의 API 호출 수신으로 이전에 계산 된 시간에 대한 API 호출 - I API 호출을 몇 번이나했는지 보려면 i을 인쇄하십시오.

for i in range(times): 
     print i 
     pics = GetPics(nextUrl) 
     for l in range(len(pics['data'])): 
      users.append(pics['data'][l]['user']['username']) 
     nextUrl = pics['pagination']['next_url'] 

사용자를 계산하고 가장 그 해시 태그 사용되는 10 명의 사용자 밖으로 인쇄 :

counts = Counter(users) 
print(counts).most_common(10) 

을 내가 도착했을 때 나는 내가 이해할 수없는 오류가 발생 해시 태그 "inerasmus"를 사용할 때 89 번째 호출까지 :


다른 사람에게도 유용한 질문이되기를 바랍니다. 고마워요!

+0

마지막 페이지에 도달 했습니까? –

+0

나는 그렇게 생각하지 않는다 - 그림의 수/103으로 103 페이지가 있어야한다 - 피드백으로 @inErasmus 계정을 사용하고있다. 모든 사진에 해시 태그가 있기 때문에 내 목록에 튀어 나와야한다. 그러나 시도했을 때 88 번 검색하면 모든 사진이 계산되지 않습니다. 자신을 설명 할 수 있었으면 좋겠다. – Michele

+0

찾을 수있는 모든 정보는 'next_url'은 실제로 다음 페이지가있는 경우에만 설정된다는 것을 알 수 있습니다. 누락 된 경우 페이지가 부족합니다. –

답변

0

Python API을 사용하지 않으시겠습니까? 내가보기에 파이썬 라이브러리로 모든 것을 할 수있다. 또한 Github에는 이미 API를 사용하는 사람들이 있습니다. Here is oneanother.

+0

죄송합니다. 답글이 아닌 설명문으로 보내주십시오. 이 질문에 대한 답변을 제공하지 않습니다. – RandomGuy

관련 문제