使用twitterapi获取关于稀有主题的大型tweet数据集

2024-09-27 19:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图获取一个包含关键字“IAmsterdam”(阿姆斯特丹城市营销活动)的大型推文数据集。 我试图同时使用Twitter的流式API和restapi,但是我无法获得一个可以分析的大数据集(情感分类)

你们中有谁知道我怎么可能得到更多关于IAmsterdam的tweet吗?在

代码REST API:

from TwitterSearch import *
import time
import sys
import codecs

#change to more convenient output type (utf-8)
sys.stdout = codecs.getwriter('utf8')(sys.stdout)

try:
    tso = TwitterSearchOrder()
    tso.set_keywords(['IAmsterdam'])
    tso.set_language('en')



    ts = TwitterSearch(
        consumer_key = '6ZnWpt6HZ1kOVSEjfFwUnLia6',
        consumer_secret = .... ,
         access_token = '2815625730-qSoq6TWyfzqpPJvY71DNAQwGUAfoQu23KgLcPg1',
         access_token_secret = ...
)

    sleep_for = 60 # sleep for 60 seconds
    last_amount_of_queries = 0 # used to detect when new queries are done


    for tweet in ts.search_tweets_iterable(tso):
        print( '@%s tweeted: %s' % ( tweet['user']['screen_name'], tweet['text'] ) )

        current_amount_of_queries = ts.get_statistics()[0]
        if not last_amount_of_queries == current_amount_of_queries:
            last_amount_of_queries = current_amount_of_queries
            time.sleep(sleep_for)

except TwitterSearchException as e:
    print(e)

代码流API

^{pr2}$

Tags: of数据importapiforsyssleepcurrent
2条回答

从API获取的数据与使用advanced search时看到的数据相同 据我所见,使用“IAmsterdam”一词的推文似乎不多,而且,通过指定lang=en使搜索更具限制性,因此您可以尝试:

  1. 根据anmol uppal的建议,在搜索中包含更多的术语
  2. 删除lang=en规范

另外,我建议您更改授权令牌,因为尽管您删除了这些令牌,但仍有足够的时间供某人复制或存储在web搜索缓存中。

这里不需要代码示例:)。在

restapi的问题是它只提供6-9天的tweet。流式api只会在tweets发生时给你提供tweets。因此,在这两种情况下,你都需要在较长的时间内收集数据,才能得到一个大的数据集。在

或者你必须减少搜索限制,搜索更多的标签/关键字。在

如果您想快速建立一个大的数据集和/或获取历史数据,那么您可以使用类似于http://topsy.com/的东西,它可以让您的tweet回到twitter开始的时候。这是有偿服务(还有其他服务)。在

相关问题 更多 >

    热门问题