วิธีการดึงทวีตจากบรรทัดคำสั่ง?


11

มีวิธีง่ายๆในการดึงทวีตของใครบางคนจากบรรทัดคำสั่งหรือไม่

บัญชีจะเป็นสาธารณะและคำสั่ง - หรือสคริปต์หากจำเป็น - จะดึงทวีตล่าสุดทั้งหมดหรือจำนวนที่ระบุไปยังไฟล์ข้อความหนึ่งทวีตต่อบรรทัดโดยไม่มีเมทาดาทาใหม่ล่าสุดในบรรทัดแรก

โดยไม่ต้องใช้ API ทุบตีเท่านั้น


ใช้ python api ง่ายและหวาน
BigSack

ไม่ใช่วิธีที่ฉันต้องการ แต่จากความอยากรู้ซึ่ง python API ลิงค์ใด ๆ หรืออยู่ในที่เก็บ?
Strapakowsky

1
มี wrapper python-twitter API อยู่
jokerdino

คำตอบ:


7

นับตั้งแต่เปิดตัว Twitter จะไม่ยอมให้คุณเข้าสู่ API โดยไม่ต้องมีคีย์ OAuth แต่เป็นวิธีแก้ไขคุณสามารถใช้ Search API เป็น RESTful ดังนั้นคุณสามารถใช้curlเพื่อดึงผลลัพธ์การค้นหาในรูปแบบ JSON ตัวอย่างเช่นหากคุณต้องการดึงทวีตของ @ java และบันทึกลงในไฟล์~/.tweetsบรรทัดรหัสนี้สามารถใช้ได้:

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

และคุณสามารถแยกวิเคราะห์ไฟล์โดยใช้ตัวแยกวิเคราะห์ JSON


rppพารามิเตอร์ทวีตจำนวน af ที่จะดึง callbackเป็นฟังก์ชั่นจาวาสคริปต์ที่จะดำเนินการใน JSON ผล ในกรณีที่คุณไม่ได้ใช้ JavaScript กับ API คุณสามารถออกได้หรือไม่ แต่ไม่ต้องลบ ฉันจะทำให้เกิดข้อผิดพลาด คำแนะนำเพิ่มเติมเกี่ยวกับการค้นหา API สามารถพบได้ที่https://dev.twitter.com/docs/api/1/get/search

มีเครื่องมือในการแยกวิเคราะห์ JSON จากอินเตอร์เฟสบรรทัดคำสั่ง แม้ว่าฉันจะไม่เคยใช้มาก่อนฉันจะใส่ลิงค์ไปยังแหล่งข้อมูลเพื่อช่วยคุณค้นหาเครื่องมือที่เหมาะสมที่สุด:

และเพื่อทราบสิ่งเล็กน้อยคุณสามารถใช้ Python หรือ Ruby (หรืออื่น ๆ ) ได้เร็วขึ้น


ดูดีขอบคุณ @g_kaya ฉันจะระบุตัวอย่างเช่นทวีตทั้งหมดหรือจำนวนสูงสุดที่อนุญาตหรือ 400 ทวีตได้อย่างไร ตัวเลือกการโทรกลับและ rpp คืออะไร? คุณสามารถแนะนำตัวแยกวิเคราะห์บรรทัดคำสั่ง JSON ได้หรือไม่?
Strapakowsky

ฉันได้แก้ไขคำตอบของฉันตามคำถามของคุณ หวังว่ามันจะช่วยให้ :)

ฉันดีใจที่พวกเขามีประโยชน์คุณยินดีต้อนรับ :)

ไม่ทำงานอีกต่อไป
Dean Meehan

1
"ข้อผิดพลาด": [{ "message":.. "API ที่ v1 ทวิตเตอร์ส่วนที่เหลือคือไม่มีการใช้งานโปรดโยกย้ายไป API v1.1 dev.twitter.com/docs/api/1.1/... }]}
ขบวนแห่

5

หากคุณไม่ต้องการใช้ Twitter API คุณสามารถคว้า RSS ฟีดของโปรไฟล์ Twitter โดยใช้สคริปต์ทุบตีแล้วดำเนินการฟอร์แมตจากที่นั่น

เนื่องจาก Twitter API เลิกใช้งานฟีด RSS แล้วคุณสามารถแก้ไขได้โดยสร้างฟีด RSS โดยใช้ผลการค้นหา

นี่คือฟีด RSS ของทวิตเตอร์ของฉัน


คุณจะต้องรวบรวมสคริปต์ทุบตีที่จำเป็นแม้ว่า จากการดึงฟีด RSS ไปจนถึงการจัดรูปแบบทวีตตามความต้องการของคุณ


ขอบคุณ @ โจ๊กเกอร์ ฉันใช้ได้กับการจัดรูปแบบไฟล์ถ้าฉันสามารถเข้าถึงไฟล์ raw ได้ ดังที่ฉันถามที่นี่ ( webapps.stackexchange.com/questions/34066/ … ) เคยมี xml พร้อมทวีตทั้งหมด แต่ไม่มีอีกแล้ว ฟีด RSS มีช่วงเวลา จำกัด และฉันไม่สามารถหาวิธีดาวน์โหลดได้เช่นทวีตทั้งหมดของคุณจากลิงก์ที่คุณส่ง คุณช่วยได้ไหม
Strapakowsky

1
เห็นได้ชัดว่าคุณสามารถเข้าถึงทวีตอายุไม่เกิน 9 วันเท่านั้น สิ่งที่เก่ากว่านั้นไม่สามารถใช้ได้ผ่านการค้นหาหรือแม้แต่ผ่าน API
jokerdino

คุณแน่ใจหรือไม่ว่าไม่สามารถรับทวีตที่เก่ากว่า 9 วันได้ ฉันเปิดคำถามได้ที่นี่: webapps.stackexchange.com/questions/34070/…
Strapakowsky

การไปยังหน้าผู้ใช้โดยตรงช่วยให้คุณเลื่อนลงอย่างต่อเนื่องเพื่อให้จาวาสคริปต์โหลดหน้าถัดไปโดยไม่มีข้อ จำกัด นั่นจะเป็นประโยชน์ในการดึงทวีตทั้งหมดหรือไม่
Strapakowsky

ลิงค์นี้บอกว่าคุณไม่สามารถดึงทวีตเก่า ๆ ได้มากกว่าหนึ่งสัปดาห์โดยใช้ API การค้นหา และฉันไม่แน่ใจเกี่ยวกับการดึงทวีตโดยใช้ JavaScript จากสิ่งที่ฉันรู้คุณไม่สามารถอ่านมากกว่า 3,000 tweets หรือมากกว่านั้นจากไทม์ไลน์
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 พร้อมเมตาดาต้า แต่มันเล็กน้อยที่จะเอาท์พุทท่อผ่านบางสิ่งบางอย่างเช่นขีดเส้นใต้ CLIเพื่อตัดออกทุกสิ่งที่คุณไม่ต้องการ

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

1

คุณสามารถไปเส้นทางหลาม + tweepy โดย:

  1. การสร้างแอปพลิเคชั่น Twitter ของคุณเอง (เพื่อรับคีย์ API)
  2. สร้างโทเค็นการเข้าถึงสำหรับบัญชี twitter ของคุณ
  3. ใช้สคริปต์เช่นนี้พร้อมกับข้อมูลรับรองของคุณ: https://gist.github.com/yanofsky/5436496

ฉันเพิ่งทดสอบและใช้งานได้ดี อย่างไรก็ตามมีผู้ใช้ที่ปกป้องทวีตของพวกเขาดังนั้นจึงอาจไม่อนุญาตให้คุณดาวน์โหลดทุกสิ่ง แต่นั่นเป็นคุณสมบัติของตัวสั่นด้วยความตื่นเต้น

จำกัด ยังคงอยู่ที่ 3200 และคุณจะได้รับไฟล์ CSV


1

คุณสามารถใช้twarcเพื่อยกตัวอย่างถ้าคุณต้องการเก็บทวีตของ Nassim Nicholas Taleb ที่คุณใช้

twarc timeline nntaleb --format csv> taleb.csv 

คุณสามารถใช้รูปแบบอื่น ๆ ได้เช่นกัน: --format {json,csv,csv-excel}

วิธีกำหนดค่าtwarc: วิธีเดียวที่จะได้รับทวีตที่สมบูรณ์คือการใช้งานที่APIน่าเสียดายแม้ว่าแอพจะโปร่งใสคุณต้องมีการตั้งค่าเริ่มต้นและการกำหนดค่าคุณต้องสมัครด้วยAPI(

ตั้งแต่กรกฎาคม 2018 คุณต้องสมัครบัญชีนักพัฒนา Twitter และได้รับการอนุมัติก่อนจึงจะสามารถสร้างแอปใหม่ได้

)

เมื่อคุณได้รับรหัสแอปพลิเคชันของคุณคุณสามารถบอกได้twarcว่าพวกเขาอยู่ที่ไหนด้วยคำสั่งกำหนดค่า

twarc configure

นี้จะเก็บข้อมูลประจำตัวของคุณในไฟล์ที่เรียกว่า.twarcในไดเรกทอรีที่บ้านของคุณเพื่อให้คุณไม่ต้องให้พวกเขาในการป้อน. ถ้าคุณค่อนข้างจะจัดหาโดยตรงคุณสามารถตั้งค่าให้อยู่ในสภาพแวดล้อม ( CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET) หรือใช้ตัวเลือกบรรทัดคำสั่ง ( --consumer_key, --consumer_secret, --access_token, --access_token_secret)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.