बिंदुओं में परिवर्तित ट्विटर ट्वीट्स?


14

मैं आर से डेटामाइन ट्विटर का उपयोग करने के बारे में कुछ शोध कर रहा हूं, लेकिन मुझे वास्तव में मेरे सवाल का जवाब या एक सभ्य ट्यूटोरियल नहीं मिला है।

मैं एक निश्चित समय सीमा के भीतर एक निश्चित हैशटैग के साथ ट्विटर से ट्वीट्स खींचने में रुचि रखता हूं, और क्यूजीआईएस या आर्कप्स में एक नक्शे पर उन ट्वीट्स के स्थान की साजिश रच रहा हूं।

मुझे पता है कि ट्वीट में उनके साथ जियोलोकेशन बंधा हो सकता है, लेकिन मैं इस जानकारी को पहली जगह में कैसे निकालूं?


यह मदद कर सकता है: mike.teczno.com/notes/streaming-data-from-twitter.html मैं मानता हूं कि मैंने यह सब नहीं पढ़ा है, लेकिन ऐसा लगता है कि वे बताते हैं कि प्रत्येक ट्वीट स्थान कैसे प्राप्त करें।
.bbroad

1
ऐसा लगता है जैसे आप उत्पाद टैग "आर", "क्यूगिस" और "आर्कगिस" खो सकते हैं क्योंकि आपको बस ट्विटर के एपीआई से निर्देशांक निकालने की आवश्यकता है । एक बार आपके पास यह जानकारी होने के बाद, आप अपनी मानक कार्यक्षमता के साथ किसी भी उत्पाद में अंक जोड़ेंगे
स्टीफन लीड

कोड को चलाने पर 401 त्रुटि आ रही है।
शिखर

जवाबों:


22

मुझे एक शब्द फिल्टर का उपयोग करके ट्वीट के लिए निर्देशांक प्राप्त करने के लिए विशुद्ध रूप से पायथन का उपयोग करने का एक तरीका मिला। ऐसा नहीं लगता कि बहुत से लोग अपने ट्वीट के साथ स्थान शामिल करते हैं।

यह वह नहीं हो सकता है जो आप इसके बाद कर रहे हैं क्योंकि यह लाइव स्ट्रीमिंग डेटा है। आप एक अद्वितीय फ़िल्टर शब्द लगाकर और फिर उस शब्द को अपने ट्विटर अकाउंट से ट्वीट करके इसका परीक्षण कर सकते हैं। आप पायथन में अपने ट्वीट शो को लगभग तुरंत देखेंगे। यह किसी बड़ी घटना के लिए उपयोग करने के लिए बहुत अच्छा होगा।

आपको Tweepy को इंस्टॉल करना होगा ।

pip install tweepy

और Twitter API Key प्राप्त करें

फिर आप इस स्क्रिप्ट को एक टेम्पलेट के रूप में उपयोग कर सकते हैं:

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"])

इस दस्तावेज़ को ट्विटर से भी देखें, यह दिखाता है कि आप फ़िल्टर में क्या डाल सकते हैं।

यहां कुछ मिनट के लिए "हैलोवीन" के रूप में फिल्टर लगाने का परिणाम है:

यहाँ छवि विवरण दर्ज करें

और इसके नरक के लिए, यहां पहले 2000 ट्वीट्स हैं जिन्होंने हैलोवीन का उल्लेख किया है!

http://i.stack.imgur.com/bwdoP.png यहाँ छवि विवरण दर्ज करें

हेलोवीन की शुभकामना!


यह 100% होगा जो मैं देख रहा था कि क्या यह किसी तरह मुझे पुराने ट्वीट्स के माध्यम से कंघी करने देगा। मैं इसके साथ खेलने जा रहा हूं और देखूंगा कि मैं क्या कर सकता हूं। आपका बहुत बहुत धन्यवाद!
ब्रैडले_जय

@ ब्रैडली_जय कोई समस्या नहीं। निम्नलिखित के अनुसार, ट्विटर वास्तव में पुराने ट्वीट्स उपलब्ध नहीं कराता है। stackoverflow.com/questions/1662151/…
ianbroad

आप 'ट्रैक' के स्थान पर बाउंडिंग बॉक्स के साथ फ़िल्टर भी कर सकते हैं। उदाहरण के लिए = [- 180, -90,180,90]
मैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.