Twitter批量获取关注用户(一)

引子

最近在研究Twitter引流,然后用到了Twitter的API,然后有时候需要批量获取一个Twitter用户下的所有关注者,在批量获取Twitter用户的过程中,发生了一些有趣的事情,这里做个记录,就当是给自己和看到这篇文章的读者一些启迪。

关于Twitter API的使用

  1. 创建应用

要使用Twitter API,首先需要注册一个Twitter应用,进入 apps.twitter.com创建一个app

  1. 修改权限

为了避免出错,最好修改一下app的权限为:Read, Write and Access direct messages

路径:app - Permissions

  1. 创建Access Token

路径:app - Keys and Access Tokens

到这一步,基本上就能获取到

  1. Consumer Key (API Key)
  2. Consumer Secret (API Secret)
  3. Access Token
  4. Access Token Secret

这几个值后面都会用到

Python中使用Twitter API

这里使用的python版本是2.7

1.首先安装现成的Twitter API封装包

$ pip install python-twitter

2.测试使用Twitter API

>>> import twitter
>>> api = twitter.Api(consumer_key='consumer_key',
               consumer_secret='consumer_secret',
               access_token_key='access_token',
               access_token_secret='access_token_secret')
>>> print(api.VerifyCredentials())
{"id": 16133, "location": "Philadelphia", "name": "bear"}

在Python Shell下执行上面的命令,如果正常打印出信息,说明配置成功

Python调用Twitter API获取关注用户

>>> import twitter
>>> api = twitter.Api(consumer_key='consumer_key',
               consumer_secret='consumer_secret',
               access_token_key='access_token',
               access_token_secret='access_token_secret')
>>> followers=api.GetFollowers(screen_name="artnet")
>>> print(followers)

上面的命令很简单是不是?但是很抱歉,API没有你想象的那么好,往往一个用户下的所有关注者还没有获取完,就出现下面的错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "twitter/api.py", line 2722, in GetFollowers
    include_user_entities)
  File "twitter/api.py", line 2665, in _GetFriendsFollowers
    include_user_entities)
  File "twitter/api.py", line 2493, in _GetFriendsFollowersPaged
    data = self._ParseAndCheckTwitter(resp.content.decode('utf-8'))
  File "twitter/api.py", line 4886, in _ParseAndCheckTwitter
    self._CheckForTwitterError(data)
  File "twitter/api.py", line 4906, in _CheckForTwitterError
    raise TwitterError(data['errors'])
twitter.error.TwitterError: [{u'message': u'Rate limit exceeded', u'code': 88}]

呃呃,,,,啥意思呢,就是API访问次数到达上线了,因为API有访问频率的限制,所以很抱歉,想通过API获取一个用户的所有关注者的想法破灭了。

当然,万能的GitHub还是能找到Twitter API的封装包修改版,在达到访问频率上限的情况下,智能的等待几秒,再去继续获取关注者,可以参考:ChunaraLab/Fetching-Twitter-Followers,但是我对这个修改版也不满意,毕竟API的访问频率上限就在那里,终究无法快速获取关注者。于是就有了自己写脚本爬取Twitter关注者的想法(见下篇)

本文作者:Abbey

本文链接:https://www.abbeyok.com/archives/30

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

Centos7下yum安装ffmpeg... <<
0 条评论

请先登陆注册

已登录,注销 取消