【问题标题】:Display last N tweets where a person is mentioned显示提及某人的最后 N 条推文
【发布时间】:2012-06-22 23:08:27
【问题描述】:
我希望实现以下目标:
对于特定的人,比如说 BarackObama,我想查看他最近被提及的 100 次。所以不是他自己的推文,而是包含@BarackObama 的其他人的推文。
我一直在尝试使用 Twitter API,成功但未能成功解决上述问题。
提前非常感谢!
升
【问题讨论】:
标签:
javascript
jquery
http
twitter
【解决方案1】:
仅供参考,我在下面找到了脚本,这应该可以满足我的需求!
需要在我的服务器上安装 Python,仅此而已。
只有以下问题仍然存在:
C:\Users\Administrator\Desktop>get_tweets.py
回溯(最近一次通话最后):
文件“C:\Users\Administrator\Desktop\get_tweets.py”,第 32 行,在
csv_writer.writerow(('用户','推文'))
TypeError: 'str' 不支持缓冲区接口
这意味着什么?谢谢!
## Retrieve a user's tweets
## Sample usage -- python get_tweets.py user_name_list.txt output.csv
##import urllib2
import sys
import csv
import urllib
##import simplejson
import json as simplejson
import traceback
COUNT=100
URL_LOCATION="https://api.twitter.com/1/statuses/user_timeline.json?"
params = {'include_entities':'true',
'include_rts':'true',
'screen_name':'Ilse_.....=>fill in username here',
'count':COUNT
}
def check_unicode(text):
if isinstance(text,unicode):
text = text.encode("UTF-8","ignore")
return text
elif isinstance(text,str):
text= unicode(text,"UTF-8").encode("UTF-8","ignore")
return text
csv_writer = csv.writer(open(sys.argv[2],"wb"))
csv_writer.writerow(["User","tweet"])
user_list = open(sys.argv[1],"rb")
cnt=0
for each_user in user_list:
print(cnt)
params['screen_name']=each_user
encoded_url = urllib.urlencode(params)
API_CALL = URL_LOCATION + encoded_url
print(API_CALL)
try:
data = urllib.urlopen(API_CALL).read()
json_data = simplejson.loads(data)
for each_timeline in json_data:
csv_writer.writerow([each_user,check_unicode(each_timeline['text'])])
except:
# Some Crap Failed !!!
print(traceback.format_exc())
cnt+=1