कमांड लाइन से ट्वीट कैसे प्राप्त करें?


11

क्या कमांड लाइन से किसी के ट्वीट को पुनः प्राप्त करने का एक सरल तरीका है?

खाता सार्वजनिक होगा, और कमांड - या स्क्रिप्ट, यदि आवश्यक हो - एक पाठ फ़ाइल के लिए सबसे हाल के ट्वीट्स के सभी या निर्दिष्ट संख्या को पुनः प्राप्त करेगा, प्रति पंक्ति एक ट्वीट, मेटाडेटा के बिना, पहली पंक्ति में सबसे नया।

एपीआई के उपयोग के बिना, केवल बैश।


अजगर एपीआई का उपयोग करें, आसान और मीठा
बिगसैक

जिस तरह से मैं पसंद नहीं करूंगा, लेकिन जिज्ञासा से बाहर जो अजगर एपीआई, कोई लिंक, या यह रिपॉजिटरी में है?
स्ट्रापाकोव्स्की

1
अजगर-ट्विटर एपीआई रैपर है।
jokerdino

जवाबों:


7

करीब-करीब की तारीख से, ट्विटर आपको OAuth कुंजी के बिना उनके एपीआई में नहीं जाने देगा। लेकिन वर्कअराउंड के रूप में आप सर्च एपीआई का उपयोग कर सकते हैं। यह RESTful है, इसलिए आप curlJSON प्रारूप में खोज परिणामों को पुनः प्राप्त करने के लिए उपयोग कर सकते हैं । उदाहरण के लिए, यदि आप @ जावा के ट्वीट को पुनः प्राप्त करना चाहते हैं, और इसे फ़ाइल में सहेजना चाहते हैं, तो ~/.tweetsकोड की इस पंक्ति का उपयोग किया जा सकता है:

curl http://search.twitter.com/search.json?q=from:java&page=1&rpp=10&callback=? >> $HOME/.tweets

और आप किसी भी JSON पार्सर का उपयोग करके फ़ाइल को पार्स कर सकते हैं।


rppपैरामीटर ट्वीट्स वायुसेना संख्या पुनः प्राप्त किया जा रहा है। callbackजावास्क्रिप्ट समारोह जिसके परिणामस्वरूप JSON पर निष्पादित किया जाना है। यदि आप एपीआई के साथ जावास्क्रिप्ट का उपयोग नहीं कर रहे हैं, तो आप इसे छोड़ सकते हैं? लेकिन इसे हटाएं नहीं। मैं एक त्रुटि का कारण बनूंगा। खोज एपीआई पर अधिक मार्गदर्शन https://dev.twitter.com/docs/api/1/get/search पर पाया जा सकता है

JSON को कमांड लाइन इंटरफ़ेस से पार्स करने के लिए उपकरण हैं। हालांकि मैंने कभी एक का उपयोग नहीं किया है, मैं कुछ संसाधनों के लिए कुछ लिंक डालूँगा, ताकि आपको सबसे उपयुक्त उपकरण का पता लगाने में मदद मिल सके:

और एक छोटे से नोट के रूप में, यह कुछ पायथन या रूबी (या अन्य) का उपयोग करने के लिए तेज है।


अच्छा लग रहा है, शुक्रिया @g_kaya। मैं उदाहरण के लिए, सभी ट्वीट या अधिकतम अनुमत या 400 ट्वीट कैसे निर्दिष्ट कर सकता हूं? कॉलबैक और रिप विकल्प क्या है? क्या आप एक कमांड-लाइन JSON पार्सर की सिफारिश कर सकते हैं?
स्ट्रापकोव्स्की

मैंने आपके प्रश्नों के अनुसार अपना उत्तर संपादित किया है। आशा है कि यह मदद करता है :)

मुझे खुशी है कि अगर वे उपयोगी हैं, तो आपका स्वागत है :)

अब काम नहीं कर रहा है
डीन मेहान सेप

1
"त्रुटियाँ": [{"संदेश": "ट्विटर रीस्ट एपीआई v1 अब सक्रिय नहीं है। कृपया एपीआई v1.1 पर जाएं। dev.twitter.com/docs/api/1.1/… }}}
घुड़सवार

5

यदि आप Twitter API का उपयोग नहीं करना चाहते हैं, तो आप bash स्क्रिप्ट का उपयोग करके Twitter प्रोफ़ाइल का RSS फ़ीड हड़प सकते हैं और फिर उसे वहां से प्रारूपित करने के लिए आगे बढ़ सकते हैं।

चूंकि ट्विटर एपीआई ने आरएसएस फ़ीड को हटा दिया है, इसलिए आप खोज परिणामों का उपयोग करके आरएसएस फ़ीड को जनरेट कर सकते हैं।

यहां आरएसएस ने मेरे ट्वीट्स को फीड किया


हालांकि आपको आवश्यक बैश स्क्रिप्ट को एक साथ रखना होगा। आरएसएस फ़ीड लाने से लेकर अपनी आवश्यकताओं के अनुसार ट्वीट्स को स्वरूपित करना।


धन्यवाद @ जोकरडिनो यदि मैं कच्ची फ़ाइल तक पहुंच रखता हूं, तो मैं फ़ाइल को प्रारूपित करने के साथ ठीक हूं। जैसा कि मैं यहां पूछता हूं ( webapps.stackexchange.com/questions/34066/… ), सभी ट्वीट्स के साथ एक xml हुआ करता था, लेकिन अब और नहीं। आरएसएस फ़ीड में एक सीमित समय सीमा होती है और मैं यह नहीं जान सकता कि कैसे डाउनलोड किया जाए, उदाहरण के लिए, आपके द्वारा भेजे गए लिंक से आपके सभी ट्वीट। क्या आप मदद कर सकते हैं?
स्ट्रापाकोव्स्की

1
जाहिरा तौर पर, आप केवल 9 दिनों की उम्र तक के ट्वीट का उपयोग कर सकते हैं। इससे बड़ी कोई चीज खोज के माध्यम से या एपीआई के माध्यम से भी उपलब्ध नहीं है।
jokerdino

क्या आप सुनिश्चित हैं कि 9 दिनों से अधिक पुराने ट्वीट पाने का कोई तरीका नहीं है? मैंने यहाँ एक प्रश्न खोला: webapps.stackexchange.com/questions/34070/…
स्ट्रापाकॉस्की

उपयोगकर्ता के पृष्ठ पर सीधे जाने से आप स्क्रॉल डाउन रख सकते हैं ताकि जावास्क्रिप्ट अगले पृष्ठ को बिना सीमा के लोड हो सके। क्या सभी ट्वीट को पुनः प्राप्त करना शोषक होगा?
स्ट्रापाकोव्स्की

यह लिंक कहता है कि आप खोज API का उपयोग करके एक सप्ताह से अधिक पुराने ट्वीट नहीं ला सकते हैं। और मैं जावास्क्रिप्ट का उपयोग करके ट्वीट लाने के बारे में निश्चित नहीं हूं। मुझे जो पता है, उससे आप लगभग 3000 से अधिक ट्वीट या टाइमलाइन नहीं पढ़ सकते हैं।
jokerdino

2

यह मेरी स्क्रिप्ट स्क्रीनसेवर के उपयोग के लिए बनाई गई है

#!/bin/bash

user="$1"
user="${user:=pontifex_pl}"

last_status_url=$(lynx -dump https://twitter.com/$user \
    | grep -i "$user/status/" \
    | head -1 \
    | awk '{print $2}')

lynx -dump "$last_status_url" \
    | grep 'Twitter:' -m1 -A4 \
    | tr -d '\n' \
    | sed -e 's/[^"]*"//' -e 's/".*//' \
    | tr -s ' '

echo

1

मैंने एक उपकरण बनाया, जो आपके द्वारा वर्णित लगभग वैसा ही होना चाहिए: ट्विटर-स्क्रीन-स्क्रैप । डिफ़ॉल्ट रूप से यह JSON में मेटाडेटा के साथ आउटपुट करेगा, लेकिन यह आउटपुट के लिए तुच्छ है जैसे कि अंडरस्कोर-क्ली जैसी किसी चीज़ के माध्यम से आउटपुट करना जो आप नहीं चाहते हैं।

$ twitter-screen-scrape -u slang800 | underscore pluck text --outfmt text > outputfile

1

आप इसके द्वारा अजगर + ट्वेपी मार्ग पर जा सकते हैं:

  1. अपना खुद का ट्विटर एप्लिकेशन बनाना (एपीआई कीज़ प्राप्त करना)
  2. आप ट्विटर अकाउंट के लिए एक्सेस टोकन बनाएं
  3. अपने क्रेडेंशियल्स के साथ इस तरह से स्क्रिप्ट का उपयोग करें: https://gist.github.com/yanofsky/5436496

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

सीमा अभी भी 3200 है और आपको एक CSV फ़ाइल मिलती है।


1

आप twarcएक उदाहरण देने के लिए उपयोग कर सकते हैं यदि आप नासीम निकोलस तालेब के ट्वीट्स को संग्रहीत करना चाहते हैं जो आप उपयोग करते हैं।

twarc timeline nntaleb --format csv> taleb.csv 

आप अन्य स्वरूपों का भी उपयोग कर सकते हैं: --format {json,csv,csv-excel}

कॉन्फ़िगर कैसे करें twarc: पूर्ण ट्वीट प्राप्त करने का एकमात्र तरीका APIदुर्भाग्य से उपयोग कर रहा है, भले ही ऐप पारदर्शी हो आपको प्रारंभिक सेटअप और कॉन्फ़िगरेशन की आवश्यकता है, आपको इसके लिए भी आवेदन करना होगा API(

जुलाई 2018 तक, आपको नए डेवलपर बनाने से पहले ट्विटर डेवलपर अकाउंट के लिए आवेदन करना होगा और अनुमोदित होना चाहिए।

)

एक बार जब आपको अपनी एप्लिकेशन कुंजियाँ मिल जाती हैं, तो आप बता सकते हैं twarcकि वे कॉन्फ़िगर कमांड के साथ क्या हैं।

twarc configure

यह कहा जाता है एक फ़ाइल में आपके क्रेडेंशियल्स स्टोर करेगा .twarcअपने घर निर्देशिका में है ताकि आप उन्हें में प्रवेश करने को रखने के लिए नहीं है। तो अगर आप उन्हें सीधे आपूर्ति करेगा आप वातावरण में उन्हें सेट कर सकते हैं ( CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET) या कमांड लाइन विकल्पों का उपयोग कर ( --consumer_key, --consumer_secret, --access_token, --access_token_secret)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.