用Python搜索推文

用Python搜索推文,python,twitter,Python,Twitter,请查看以下代码: q = '#MentionSomeoneImportantForYou' count = 100 search_results = twitter_api.search.tweets(q=q, count=count) #twitter_api是预定义的,运行良好 statuses = search_results['statuses'] for _ in range(5): print "Length of statuses", len(statuses)

请查看以下代码:

q = '#MentionSomeoneImportantForYou'

count = 100

search_results = twitter_api.search.tweets(q=q, count=count)
#twitter_api
是预定义的,运行良好

statuses = search_results['statuses']

for _ in range(5):
   print "Length of statuses", len(statuses)
   try:
       next_results = search_results['search_metadata']['next_results']
   except KeyError, e: # No more results when next_results doesn't exist
       break

kwargs = dict([ kv.split('=') for kv in next_results[1:].split("&") ])
最后一个代码引发未定义“下一个结果”的错误


我在这件事上哪里做错了?

我真的不明白你为什么要这么做

next_results = search_results['search_metadata']['next_results']
而此行将在5次内返回相同的结果

Anw,“下一个结果”未定义意味着上面的行甚至没有达到1次

怎么样

print search_results['search_metadata']

要查看API的响应到底如何?

这段代码工作得非常好

# Import unquote to prevent url encoding errors in next_results
from urllib.parse import unquote


q='#Ethiopia'


count = 100

# See https://dev.twitter.com/docs/api/1.1/get/search/tweets

search_results = twitter_api.search.tweets(q=q, count=count)

statuses = search_results['statuses']

# Iterate through 5 more batches of results by following the cursor
print(search_results['search_metadata'])
for _ in range(5):
    print("Length of statuses", len(statuses))

    try:
        #print(search_results['search_metadata'])
        next_results = search_results['search_metadata']['next_results']

    except KeyError: # No more results when next_results doesn't exist
        break

    # Create a dictionary from next_results, which has the following form:
    # ?max_id=313519052523986943&q=NCAA&include_entities=1
    kwargs = dict([ kv.split('=') for kv in unquote(next_results[1:]).split("&") ])

    search_results = twitter_api.search.tweets(**kwargs)
    statuses += search_results['statuses']

# Show one sample search result by slicing the list...
print(json.dumps(statuses[0], indent=1))

您是否检查了返回的json,以查看其结构是否与您的查询匹配?否。具体如何操作?打印响应,它应该是json对象逻辑直观。这是结果:>>>打印搜索结果['search\u metadata']{u'count':100,u'completed_in':0.071,u'max_id_str':u'486716269945569280',u'since_id_str':u'0',u'refresh_url':u'?since_id=486716269945569280&q=%23提及某个重要的实体,包括实体=1',u'since_'id':0,u'query:u''%23提及某个重要的实体,u'max_'id':4867162945569280l}所以这里没有“下一个搜索结果”:)也许你想要
next\u results=search\u results['search\u metadata']['refresh\u url']