用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']
?