コマンドラインからツイートを取得する方法は?


11

コマンドラインから誰かのツイートを取得する簡単な方法はありますか?

アカウントは公開され、コマンド(または必要に応じてスクリプト)は、すべてまたは指定された数の最新のツイートをテキストファイルに取得します。

APIを使用しない場合、bashのみ。


簡単で甘いpython apiを使用して
-BigSack

私が好む方法ではなく、好奇心からどのPython API、任意のリンク、またはリポジトリにありますか?
ストラパコフスキー

1
python-twitter APIラッパーがあります。
jokerdino

回答:


7

近い日付から、TwitterはOAuthキーを持たない限りAPIにアクセスできません。ただし、回避策としてSearch APIを使用できます。RESTfulであるためcurl、JSON形式で検索結果を取得するために使用できます。たとえば、@ javaのツイートを取得してfile ~/.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でJavaScriptを使用していない場合は、そのままにしておくことはできますが、削除しないでください。エラーが発生します。検索APIの詳細については、https://dev.twitter.com/docs/api/1/get/searchをご覧ください。

コマンドラインインターフェイスからJSONを解析するツールがあります。使用したことはありませんが、最適なツールを見つけるのに役立つように、いくつかのリソースへのリンクを掲載します。

また、ちょっとした注意として、一部のPythonまたはRuby(またはその他)を使用する方が簡単です。


よさそうだ、@ g_kayaありがとう。たとえば、すべてのツイート、最大許容ツイート、400ツイートなどを指定するにはどうすればよいですか?コールバックとrppオプションとは何ですか?コマンドラインJSONパーサーを推奨できますか?
ストラパコフスキー

あなたの質問に従って答えを編集しました。それが役立つことを願っています:)

それらが有用であれば、私はうれしいです、あなたは大歓迎です:)

もう働いていない
ディーンミーハン

1
"エラー":[{"メッセージ": "Twitter REST API v1はもうアクティブではありません。APIv1.1に移行してください。dev.twitter.com/docs/api/1.1/… }]}
cavalcade

5

Twitter APIを使用したくない場合は、bashスクリプトを使用してTwitterプロファイルのRSSフィードを取得し、そこからフォーマットを開始できます。

Twitter APIはRSSフィードを非推奨にしているため、検索結果を使用してRSSフィードを生成することで回避できます。

これが私のツイートのRSSフィードです


ただし、必要なbashスクリプトをまとめる必要があります。RSSフィードの取得から、要件に応じたツイートの書式設定まで。


ありがとう@jokerdino。生のファイルにアクセスできる場合、ファイルのフォーマットは問題ありません。ここで尋ねると(webapps.stackexchange.com/questions/34066/…)、以前はすべてのツイートを含むxmlがありましたが、それ以上はありませんでした。rssフィードの期間は限られているため、たとえば、送信したリンクからすべてのツイートをダウンロードする方法が見つかりませんでした。手伝ってくれますか?
ストラパコフスキー

1
明らかに、アクセスできるのは最大9日前のツイートのみです。それより古いものは、検索やAPIを介しても利用できません。
jokerdino

9日以上前のツイートを取得する方法はありませんか?私はここに質問を開いた:webapps.stackexchange.com/questions/34070/...
Strapakowsky

ユーザーのページに直接移動すると、JavaScriptが次のページを無制限に読み込むように、下にスクロールし続けることができます。すべてのツイートを取得するために悪用される可能性はありますか?
ストラパコフスキー

このリンクは、検索APIを使用して1週間以上前のツイートを取得できないことを示しています。また、JavaScriptを使用してツイートを取得するかどうかはわかりません。私が知っていることから、あなたはタイムラインから約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

私が作成したツールは、あなたが説明したものとほぼ正確に一致するはずです:twitter-screen-scrape 。デフォルトでは、メタデータ付きのJSONで出力されますが、出力をunderscore-cliのようなものにパイプして、不要なものをすべて取り除くのは簡単です。

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

1

あなたはpython + 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年7月の時点で、新しいアプリを作成する前に、Twitter開発者アカウントを申請し、承認される必要があります。

一度あなたがあなたのアプリケーションキーを持っているあなたが言うことができるtwarc彼らはconfigureコマンドですか。

twarc configure

これはと呼ばれるファイルに資格情報格納します.twarcあなたがそれらを入力維持する必要はありませんので、あなたのホームディレクトリにします。あなたは、むしろそれらを直接供給したい場合、あなたが環境にそれらを設定することができます(CONSUMER_KEYCONSUMER_SECRETACCESS_TOKENACCESS_TOKEN_SECRET)または(コマンドラインオプションを使用して--consumer_key--consumer_secret--access_token--access_token_secret)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.