【问题标题】:Is there a way for me to download all the tweets made by all twitter users in a particular region?有没有办法让我下载特定地区所有推特用户发布的所有推文?
【发布时间】:2015-01-13 00:33:09
【问题描述】:

有没有办法让我使用 Python 下载特定地区(比如美国)在特定时间段(比如从 11 月 15 日开始到 11 月 22 日结束的一周)内所有 Twitter 用户发布的所有推文?这是针对 NLP 任务的。现在,我可以下载与我搜索的某些主题相关的推文,并且只能下载在程序运行时制作的推文。无论主题如何,我都希望能够为数据挖掘/NLP 任务获取过去的推文。

【问题讨论】:

  • 如果你用谷歌搜索相同的查询(作为你的 qquestion),你可以很容易地找到很多 Python 模块,它们可以让你访问 twitter API
  • 我用谷歌搜索了这个问题,但所有结果都过滤了推特结果,只返回了包括搜索主题在内的推文。我想为 NLP 任务构建一个推文语料库,其中包括一个区域中的所有推文。

标签: python twitter nlp


【解决方案1】:

是的!可以的。

使用Tweepy

import tweepy

consumer_key = ''
consumer_secret = ''

access_token_key = ''
access_token_secret = ''

auth1 = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth1.set_access_token(access_token_key, access_token_secret)

class StreamListener(tweepy.StreamListener):
    def on_status(self, tweet):
        print 'Ran on_status'

    def on_error(self, status_code):
        print 'Error: ' + repr(status_code)
        return False

    def on_data(self, data):
        print 'Ok, this is actually running'


l = StreamListener()
streamer = tweepy.Stream(auth=auth1, listener=l)
setTerms = ['twitter']
streamer.filter(track = setTerms)

stream.filter()可以指定区域,更多details

stream.filter(locations=[ "here you can define a region by listing the lang/lat" ], track=terms)

如果你有一个特定的定义区域,你可以在列表器中检查它

def on_status(self, status):
      if status.coordinates .. :

【讨论】:

  • 这只会返回包含“twitter”一词的推文,对吧?无论内容如何,​​我都希望能够获得所有推文。
猜你喜欢
  • 2020-10-11
  • 2014-03-28
  • 2018-01-25
  • 1970-01-01
  • 2021-05-31
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
相关资源
最近更新 更多