Перетворення твітів у Twitter в очки?


14

Я займався деякими дослідженнями щодо використання R для twitter datamine, але я дійсно не знайшов відповіді чи гідного підручника на своє запитання.

Мені цікаво витягнути твіти з твіттера з певним хештегом у певні часові рамки та намітити розташування цих твітів на карті в QGIS або ArcMap.

Я знаю, що твіти можуть бути пов’язані з ними геолокацією, але як я отримую цю інформацію в першу чергу?


Це може допомогти: mike.teczno.com/notes/streaming-data-from-twitter.html Я визнаю, що я не все це прочитав, але, схоже, вони показують, як отримати місце розташування кожного твіту.
ianbroad

1
видається, що ви можете втратити теги товарів "r", "qgis" та "arcgis", оскільки вам просто потрібно отримати координати з API Twitter. Отримавши цю інформацію, ви додасте бали до будь-якого продукту, використовуючи його стандартну функціональність
Stephen Lead

401 помилка при запуску коду.
шихар

Відповіді:


22

Я знайшов спосіб за допомогою чисто Python отримати координати твітів за допомогою фільтра слів. Здається, що багато людей включають місцезнаходження своїм твітом.

Це може бути не тим, про що ви хочете, тому що це пряма трансляція даних. Ви можете перевірити це, додавши унікальне слово фільтру, а потім щебетати це слово зі свого акаунта Twitter. Ви побачите ваш твіт-шоу на Python майже миттєво. Це було б досить круто, щоб використовувати для якоїсь величезної події.

Вам потрібно буде встановити Tweepy .

pip install tweepy

І отримати ключ API 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

@Bradley_Jay Немає проблем. Згідно з наступним, Twitter насправді не робить доступними старі твіти. stackoverflow.com/questions/1662151 / ...
ianbroad

Ви також можете фільтрувати з обмежувальним вікном замість "доріжки", наприклад, місцезнаходження = [- 180, -90,180,90]
Метт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.