LoginSignup
1
6

More than 5 years have passed since last update.

curlを使って5秒ごとにhtmlから特定の情報のみを抜き出してテキストファイルに出力

Posted at

やりたいこと

  • rippleチャートの現在の価格を5秒ごとにテキストファイルに出力させるscriptを作成する

まずは周辺の情報を取得

terminal
$ curl -s 'https://www.coingecko.com/ja/%E7%9B%B8%E5%A0%B4%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88/%E3%83%AA%E3%83%83%E3%83%97%E3%83%AB/jpy' | ggrep -oP '(?<=<span>)(.+)(?=</span>)'
  • ggrep → Homebrewのコマンド → 先読み、後読み機能が付いているのがgrepとの違い
    • -o
      • 正規表現に一致した部分のみを返す
    • -P
      • Perlの正規表現を有効にする

結果

terminal
15,726,286,988,711¥
405.9534¥
15,726,286,988,711¥
298.35287¥
432.55378¥
988,417,787,080¥
15,726,286,988,711¥
298.35287¥
432.55378¥
988,417,787,080¥
405.9534¥</span></b>です。現在の流通量は 38.7 十億 で取引された合計は <span>988,417,787,080¥
405.9534¥
15,726,286,988,711¥
988,417,787,080¥

欲しいのは以下の頭の405.9534!他のはいらん!

405.9534¥</span></b>です。現在の流通量は 38.7 十億 で取引された合計は<span>988,417,787,080¥

よってさらに絞り込みをする。

もっと絞り込む

terminal
$ curl -s 'https://www.coingecko.com/ja/%E7%9B%B8%E5%A0%B4%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88/%E3%83%AA%E3%83%83%E3%83%97%E3%83%AB/jpy' | ggrep -oP '(?<=<span>)(.+)(?=</span>)' | grep '</span></b>' | cut -d\¥ -f1
  • cut
    • -d
      • deleteする。-d\¥ にすることで、¥で区切るため、¥より前の情報のみを出力することができる。
    • -f1
      • 抽出するフィールドの番号を指定する。この場合は1列目だけを抽出

結果

terminal
405.9534

上記の値を5分ごとにファイルに出力する

terminal
watch -n 300 "curl -s 'https://www.coingecko.com/ja/%E7%9B%B8%E5%A0%B4%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88/%E3%83%AA%E3%83%83%E3%83%97%E3%83%AB/jpy' | ggrep -oP '(?<=<span>)(.+)(?=</span>)' | grep '</span></b>' | cut -d -f1 >> ripple.txt"

watchコマンドで-nの後に300を指定することで300秒ごとにcurlコマンドを実行することができる。
ripple.txtはDesktopに予め作成しておいたファイルです。

次はこの値をスマホに通知したい!!

1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6