Twython加载3200条推文并对其进行编码(西里尔文本)

时间:2014-10-25 23:46:24

标签: python-3.x twitter utf-8 encode twython

我用Twython模块(3.1.2)在Python 3.4.2上编写了一个小程序。 它有效,但不完全正确。 程序加载推文并显示它们(你可以看到下面的代码)。它载了200条推文,但我读到Twitter API可以访问3200条推文。我可以用Twython做到这一点吗? 主要问题 - 推文以不可读的形式加载:(我注意到这是因为推文是在西里尔文上写的。

import sys
from twython import Twython

APP_KEY = 'MY_APP_KEY'
APP_SECRET = 'MY_APP_SECRET'
OAUTH_TOKEN = 'MY_OAUTH_TOKEN'
OAUTH_TOKEN_SECRET = 'MY_OAUTH_TOKEN_SECRET'

client_args = {
  "headers": {
    "accept-charset": "utf-8"
  }
}

twitter = Twython(APP_KEY, APP_SECRET,
                  OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

user_tweets = twitter.get_user_timeline(screen_name='poroshenko',
                                        count=200)

for tweets in user_tweets:
   print (tweets['text'].encode('utf-8'))

2 个答案:

答案 0 :(得分:0)

将计数=更改为3200

有关打印推文,请参阅https://twython.readthedocs.org/en/latest/usage/special_functions.html

使用:

for tweet in user_tweets:
    tweet['text'] = Twython.html_for_tweet(tweet)
    print(tweet['text'])

答案 1 :(得分:0)

您必须使用max_id参数。

获得前200条推文后,您将获得最后一条推文(最早的推文)的ID,然后再次调用twitter API。我们假设此推文ID是 lastId

user_tweets = twitter.get_user_timeline(screen_name='poroshenko',count=200,max_id=str(long(lastId)-1))

确保在超出速率限制时也要处理。