【问题标题】:Tweepy Streaming filter fieldsTweepy 流过滤器字段
【发布时间】:2016-11-11 23:19:06
【问题描述】:

我有这个 python 代码,它使用 Tweepy 和 Streming API 从 Twitter 检索数据,并在找到 1000 个结果(即 1000 个推文数据)时停止。 它运行良好,但问题是当我尝试在 PyCharm 上运行它时,它会削减部分结果。由于代码返回了推文的所有数据(ID、文本、作者 ecc),因此它可能生成了太多数据并且软件崩溃了。所以我想修改代码以便只获取推特数据的某些字段(例如,我只需要推文的文本、作者、日期) 任何建议表示赞赏

# Import the necessary package to process data in JSON format
try:
    import json
except ImportError:
    import simplejson as json

# Import the necessary methods from "twitter" library
from twitter import Twitter, OAuth, TwitterHTTPError, TwitterStream

# Variables that contains the user credentials to access Twitter API
ACCESS_TOKEN = ''
ACCESS_SECRET = ''
CONSUMER_KEY = ''
CONSUMER_SECRET = ''


oauth = OAuth(ACCESS_TOKEN, ACCESS_SECRET, CONSUMER_KEY, CONSUMER_SECRET)

# Initiate the connection to Twitter Streaming API
twitter_stream = TwitterStream(auth=oauth)

# Get a sample of the public data following through Twitter
#iterator = twitter_stream.statuses.sample() #SEMPLICE TWITTER STREAMING

iterator = twitter_stream.statuses.filter(track="Euro2016", language="en") #tWITTER STREAMING IN BASE AD UNA TRACK DI RICERCA E AL LINGUAGGIO PER ALTRI SETTAGGI VEDERE https://dev.twitter.com/streaming/overview/request-parameters
#PER SETTARE PARAMETRI RICERCA https://dev.twitter.com/streaming/overview/request-parameters


# Print each tweet in the stream to the screen
# Here we set it to stop after getting 1000 tweets.
# You don't have to set it to stop, but can continue running
# the Twitter API to collect data for days or even longer.
tweet_count = 1000 #SETTAGGIO DI QUANTI RISULTATI RESTITUIRE
for tweet in iterator:
    tweet_count -= 1
    # Twitter Python Tool wraps the data returned by Twitter
    # as a TwitterDictResponse object.
    # We convert it back to the JSON format to print/score
    print(json.dumps(tweet))

    # The command below will do pretty printing for JSON data, try it out
    # print json.dumps(tweet, indent=4)

    if tweet_count <= 0:
        break

【问题讨论】:

    标签: python python-3.x twitter tweepy


    【解决方案1】:

    我能够在 PyCharm 上运行 1000 条推文而没有任何问题。因此,请尝试在另一台计算机上运行此程序,或调查您现有系统是否存在问题。

    结果是一个 python 字典,所以你需要访问单个元素如下所示

    for tweet in iterator:
        tweet_count -= 1
        #access the elements such as 'text','created_at' ... 
        print tweet['text']
    

    【讨论】:

    • 我的 PyCharm 打印了 1000 条推文的所有数据,但是当这个过程完成时,我尝试向上滚动数据,我发现这些数据被截断了,就像内存软件无法保留所有数据一样我能理解为什么!此外,我的 16 GB RAM 笔记本的 RAM 不可能有问题。但是,如果例如,我该怎么办。我想获取嵌套在 la 列“user”中的列“screen_name”?
    • @AndreaAngeli 结构是字典的字典。所以要访问screen_name,你可以使用print tweet['user']['screen_name']
    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 2015-05-17
    • 2021-07-05
    • 2015-04-26
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多