将Twitter推文转换成积分?


14

我一直在研究使用R来挖掘Twitter的数据,但是我还没有真正找到问题的答案或不错的教程。

我感兴趣的是在特定时间范围内从具有特定标签的Twitter推文中提取信息,并在QGIS或ArcMap中在地图上绘制这些推文的位置。

我知道推文可以绑定地理位置,但是首先如何提取这些信息?


这可能会有所帮助:mike.teczno.com/notes/streaming-data-from-twitter.html我承认我并未阅读全部内容,但看来它们显示了如何获取每个tweet位置。
ianbroad

1
似乎您可能会丢失产品标签“ r”,“ qgis”和“ arcgis”,因为您只需要从Twitter的API中提取坐标即可。一旦你的信息,你可以使用其标准的功能点添加到任何产品
斯蒂芬领导

运行代码时出现401错误。
shikhar

Answers:


22

我找到了一种使用纯Python使用字过滤器获取tweet坐标的方法。似乎没有很多人在推文中包含位置信息。

这可能也不是您想要的,因为这是实时流数据。您可以通过放置一个唯一的过滤词,然后在您的Twitter帐户上发布该词来进行测试。您将看到您的推文几乎立即显示在Python中。对于某些大型事件,这将非常酷。

您需要安装Tweepy

pip install tweepy

并获得一个Twitter API密钥

然后,您可以将此脚本用作模板:

import json
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener

#Enter Twitter API Key information
consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''

file = open("C:\\Output.csv", "w")
file.write("X,Y\n")

data_list = []
count = 0

class listener(StreamListener):

    def on_data(self, data):
        global count

        #How many tweets you want to find, could change to time based
        if count <= 2000:
            json_data = json.loads(data)

            coords = json_data["coordinates"]
            if coords is not None:
               print coords["coordinates"]
               lon = coords["coordinates"][0]
               lat = coords["coordinates"][1]

               data_list.append(json_data)

               file.write(str(lon) + ",")
               file.write(str(lat) + "\n")

               count += 1
            return True
        else:
            file.close()
            return False

    def on_error(self, status):
        print status

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
twitterStream = Stream(auth, listener())
#What you want to search for here
twitterStream.filter(track=["Halloween"])

也可以从Twitter 查看此文档,它显示了可以放入过滤器中的内容。

这是将过滤器置于“万圣节”状态几分钟的结果:

在此处输入图片说明

而对于地狱,这是提到万圣节的前2000条推文!

http://i.stack.imgur.com/bwdoP.png 在此处输入图片说明

万圣节快乐!


如果能以某种方式让我也梳理旧的推文,这将是我一直在寻找的100%。我将试着解决这个问题,看看我能想到什么。非常感谢你!
Bradley_Jay 2014年

@Bradley_Jay没问题。根据以下内容,Twitter并未真正提供较旧的推文。stackoverflow.com/questions/1662151/…–
ianbroad

您还可以使用边界框而不是'track'进行过滤,例如locations = [-180,-90,180,90]
Matt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.