2014-06-13 7 views
26

मैं इसे समझने की कोशिश कर रहा हूं लेकिन यह वास्तव में निराशाजनक है। मैं ट्वीपी का उपयोग कर एक निश्चित हैशटैग (बड़ी संख्या में ट्वीट्स) के साथ ट्वीट्स प्राप्त करने की कोशिश कर रहा हूं। लेकिन यह एक सप्ताह से अधिक वापस नहीं जाता है। मुझे कुछ महीनों की अवधि के लिए कम से कम दो साल वापस जाने की जरूरत है। क्या यह भी संभव है, अगर ऐसा है तो कैसे?मैं एक हफ्ते से अधिक पुराने ट्वीट कैसे प्राप्त कर सकता हूं (ट्वीपी या अन्य पायथन पुस्तकालयों का उपयोग करके)

बस की जांच के लिए

यहाँ मेरी कोड

import tweepy 
import csv 

consumer_key = '####' 
consumer_secret = '####' 
access_token = '####' 
access_token_secret = '####' 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 
api = tweepy.API(auth) 

# Open/Create a file to append data 
csvFile = open('tweets.csv', 'a') 
#Use csv Writer 
csvWriter = csv.writer(csvFile) 


for tweet in tweepy.Cursor(api.search,q="#ps4",count=100,\ 
          lang="en",\ 
          since_id=2014-06-12).items(): 
    print tweet.created_at, tweet.text 
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')]) 
+5

ध्यान दें कि 'since_id = 2014-06-12' 'since_id = 1996' के बराबर है, क्योंकि 2014 शून्य से 6 शून्य 12 बराबर है। –

+0

संभावित डुप्लिकेट [ ट्विटर से ऐतिहासिक डेटा प्राप्त करना] (https: // stackoverflow।कॉम/प्रश्न/1662151/हो रही-ऐतिहासिक-डेटा-से-ट्विटर) – Nemo

उत्तर

1

और "जब तक" अपने समय सीमा को समायोजित करने के "के बाद से" आर्ग का उपयोग करें।

for tweet in tweepy.Cursor(api.search, 
          q="test", 
          since="2014-01-01", 
          until="2014-02-01", 
          lang="en").items(): 
+3

हाँ मैंने कोशिश की लेकिन यह संभव नहीं है, यदि तारीख एक सप्ताह से अधिक पुरानी है तो उत्पादन कुछ भी नहीं है। इसलिए मुझे लगता है कि खोज से मुझे एक अलग विधि का उपयोग करना है, लेकिन मुझे कोई अन्य काम नहीं मिला जो – MustiHakan

18

आप दो साल पहले से ट्वीट्स इकट्ठा करने के लिए चहचहाना खोज API का उपयोग नहीं कर सकते हैं: आप इस समय since_id जो चहचहाना आईडी मूल्यों (नहीं दिनांकों) के अनुरूप करने के लिए है का उपयोग कर रहे हैं। दस्तावेज़ों के अनुसार:

यह भी ध्यान रखें कि twitter.com पर खोज परिणाम ऐतिहासिक परिणाम लौटा सकते हैं जबकि खोज एपीआई आमतौर पर केवल पिछले सप्ताह से ट्वीट्स परोसता है। - Twitter documentation

यदि आपको पुरानी ट्वीट प्राप्त करने का कोई तरीका चाहिए, तो आप उन्हें व्यक्तिगत उपयोगकर्ताओं से प्राप्त कर सकते हैं क्योंकि उनसे ट्वीट्स एकत्रित करने के बजाय समय से सीमित है (इसलिए कई मामलों में आप महीनों या वर्षों में वापस जा सकते हैं)। Topsy जैसी ट्वीट्स एकत्र करने वाली एक तृतीय-पक्ष सेवा आपके मामले में भी उपयोगी हो सकती है (जुलाई 2016 तक बंद हो जाती है, लेकिन अन्य सेवाएं मौजूद हैं)।

+1

ट्विटर को नवंबर 2014 में सभी पुरानी ट्वीट खोलता है: http://www.theverge.com/2014/11/18/7242477/twitter- खोज-अब-चलो-आप-कभी-कभी-कभी-कभी-कभी भेजे गए –

+1

यह उनकी खोज * इंजन * है, क्या यह उनके एपीआई के लिए भी सच है? – Luigi

+6

@ लुइगी अब तक नहीं है। मैंने अभी इसका परीक्षण किया है :( – rahulserver

18

जैसा कि आपने देखा है कि ट्विटर एपीआई की कुछ सीमाएं हैं, मैंने एक कोड लागू किया है जो ट्विटर पर ब्राउज़र चलाने पर समान रणनीति का उपयोग करके ऐसा करता है। एक नजर डालें, तो आप सबसे पुराने ट्वीट्स प्राप्त कर सकते हैं: https://github.com/Jefferson-Henrique/GetOldTweets-python

+0

क्या यह अभी भी काम कर रहा है? जब मैं कोशिश करता हूं - तब तक और विकल्प तक यह मुझे 0 ट्वीट्स देता है? –

+2

मेरे लिए वेनिला उबंटू 12.04 पर काम नहीं किया गया था, इसलिए, मुझे पहले पिक्चर और एलएक्सएमएल स्थापित करना पड़ा अगर किसी को भी एक ही समस्या में आती है, तो कृपया पाइथन-पीआईपी स्थापित करें, पाइप इंस्टॉल पाइक्री; apt-get python-lxml इंस्टॉल करें; फिर स्क्रिप्ट काम करेगी।;) – rsharpy

+0

किसी के लिए अभी भी संघर्ष कर रहा है, आपको इन्हें रखना होगा 2 libs भी स्थापित: sudo apt-get libxslt-dev libxml2-dev –

7

मिले एक कोड की यात्रा है कि मदद मिलेगी से अधिक उम्र के ट्विट्स प्राप्त करने के लिए पुरानी ट्वीट्स पुनर्प्राप्त करें। https://github.com/Jefferson-Henrique/GetOldTweets-python

पुरानी ट्वीट प्राप्त करने के लिए, निर्देशिका में निम्न आदेश चलाएं जहां कोड भंडार निकाला गया था।

python Exporter.py --querysearch 'keyword' --since 2016-01-10 --until 2016-01-15 --maxtweets 1000 

और यह काम करने के लिए

पुनश्च आपके कीवर्ड से जुड़े ऊपर दिनों

आप इस के लिए एक मॉड्यूल 'pyquery' स्थापित करने की आवश्यकता के दौरान 1000 ट्वीट्स के साथ एक फ़ाइल 'output_got.csv' लौटे: अपनी आवश्यकता के अनुसार अधिक ट्वीट गुण प्राप्त करने के लिए आप 'Exporter.py' पायथन कोड फ़ाइल को संशोधित कर सकते हैं।

+0

स्थापित करें मैंने 2015 में अधिकतम 10000 के साथ एक महीने की अवधि के लिए ट्वीट्स खोजने की कोशिश की। लेकिन यह केवल 200 मिल सकता है। ऐसा लगता है कि पुरानी तारीख है, यह कम डेटा प्राप्त कर सकते हैं। –

1

जैसा कि अन्य ने ध्यान दिया है, ट्विटर एपीआई की तिथि सीमा है, लेकिन ट्विटर.com पर लागू वास्तविक उन्नत खोज नहीं है। तो समाधान twitter.com एंडपॉइंट के माध्यम से फिर से शुरू करने के लिए सेलेनियम या फैंटॉमजेएस के लिए पाइथन के रैपर का उपयोग करना है। सेलेनियम का उपयोग करके एक कार्यान्वयन यहां दिया गया है कि किसी ने गिथब पर पोस्ट किया है: https://github.com/bpb27/twitter_scraping/

संबंधित मुद्दे

 संबंधित मुद्दे