ano*_*428 4 python twitter pagination tweepy
我对使用游标类的tweepy和分页相当新.我一直在尝试使用光标类来获取特定Twitter用户的所有关注者,但我不断得到它所说的错误"tweepy.error.TweepError: This method does not perform pagination"
因此我真的很感激任何帮助,如果有人可以帮助我实现这个任务获得所有的追随者一个特殊的Twitter用户,使用tweepy进行分页.我到目前为止的代码如下:
import tweepy
consumer_key='xyz'
consumer_secret='xyz'
access_token='abc'
access_token_secret='def'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
user = api.get_user('somehandle')
print user.name
followers = tweepy.Cursor(user.followers)
temp=[]
for user in followers.items():
temp.append(user)
print temp
#the following part works fine but that is without pagination so I will be able to retrieve at #most 100 followers
aDict = user.followers()
for friend in aDict:
friendDict = friend.__getstate__()
print friendDict['screen_name']
Run Code Online (Sandbox Code Playgroud)
有一种方便的方法叫做followers_ids.它为给定(或,或)返回最多5000个关注者(twitter api限制)ID .screen_nameiduser_idcursor
然后,您可以在python中手动分页这些结果并调用lookup_users每个块.只要一次lookup_users只能处理100个用户ID(twitter api限制),将块大小设置为100是非常合理的.
这是代码(分页部分取自这里):
import itertools
import tweepy
def paginate(iterable, page_size):
while True:
i1, i2 = itertools.tee(iterable)
iterable, page = (itertools.islice(i1, page_size, None),
list(itertools.islice(i2, page_size)))
if len(page) == 0:
break
yield page
auth = tweepy.OAuthHandler(<consumer_key>, <consumer_secret>)
auth.set_access_token(<key>, <secret>)
api = tweepy.API(auth)
followers = api.followers_ids(screen_name='gvanrossum')
for page in paginate(followers, 100):
results = api.lookup_users(user_ids=page)
for result in results:
print result.screen_name
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
4141 次 |
| 最近记录: |