在Python中获取Twitter用户名

时间:2016-03-10 19:36:03

标签: python-3.x twitter username tweepy

我正在尝试在Twitter上阅读以下关键字的推文(骑自行车,跑步,体育活动),并且还希望获得发送推文的人的用户名。我已经浏览过网络,但还没有找到一个似乎有用的答案。我不认为我完全理解我在寻找什么?任何帮助将不胜感激,我的代码到目前为止...

由于

import tweepy
from time import sleep 
import sys
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)

CONSUMER_KEY = 'xxxx'
CONSUMER_SECRET = 'xxxx'
ACCESS_KEY = 'xxxx'
ACCESS_SECRET = 'xxxx'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
auth.secure = True
api = tweepy.API(auth)

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        if 'cycling' in status.text.lower():
                print('BIKE!')
                print(status.text.translate(non_bmp_map))
        elif 'running' in status.text.lower():
            print('RUN!')
            print(status.text.translate(non_bmp_map))
        else:
            print('SPORTS SUCK!')
            print(status.text.translate(non_bmp_map))

myStreamListener = MyStreamListener
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener())

myStream.filter(track=['cycling', 'running', 'sports suck'])

我已添加此代码...(带有#in的行)。它不断出现错误消息: TypeError:'type'对象不可迭代任何想法?

class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
    for tweet in tweepy.Cursor: #I'VE ADDED THIS LINE
        if 'cycling' in status.text.lower():
                print('BIKE!')
                print(status.text.translate(non_bmp_map))
                print(tweet.user.screen_name) #I'VE ADDED THIS LINE
        elif 'running' in status.text.lower():
            print('RUN!')
            print(status.text.translate(non_bmp_map))

1 个答案:

答案 0 :(得分:2)

您一定要查看允许接收发送的推文和发件人用户名的this Python API。我没有使用python的经验,我让它的工作非常快速和简单。

所有有用的源代码&让它工作的方式是在git页面上: - )