インターネット経由でデータを取得する「curl」(その2)

【連載】

にわか管理者のためのLinux運用入門

【第78回】インターネット経由でデータを取得する「curl」(その2)

[2017/06/13 15:30]後藤大地 ブックマーク ブックマーク

毎日特定のサイトからデータを持ってきてExcelのシートにまとめ、印刷して提出する。そんな作業もあるだろう。そうした作業は、自動化が可能だ。ここで使えるのが、前回紹介したデータを取得するためのコマンド「curl」、これまでの連載で紹介してきたデータ加工用のコマンドたちである。

例えば、天気予報のサイトから天気予報データを取得し、テキストとして表示させてみよう。

天気予報のページ

ハイライト部分の文字列を取り出すことにする

curlコマンドで対象のHTMLデータが取得できることは前回紹介した。今回の場合、次のように指定して実効する。

curlコマンドで天気予報データを取得

次に、取得したHTMLデータから欲しいデータだけを取得する。「曇り」という文字列をgrepコマンドで抽出してみよう。

grepコマンドで欲しいデータ(ここでは「曇り」)を探す

どのように加工してもよいのだが、この場合だと「height=40」という文字列で絞り込むことができそうなので、次のように指定して実行してみる。

特定のキーワード(ここでは「height=40」)で絞り込み

今回は、「alt=」という文字列の後に続く天気を表す文字列だけが取得できればよいので、次のようにさらにsedコマンドで文字列の抜き出しを行う。

sedコマンドで欲しいデータを抜き出す

後は、不要な文字列をgrepコマンドで排除するだけだ。すると、次のように欲しいデータだけ抜き出せる。

データの抜き出し完了

一連の処理をシェルスクリプトに整理すると、次のようになる。

#!/bin/sh

url=https://weather.yahoo.co.jp/weather/jp/13/4410/13101.html

curl $url 2> /dev/null                  |
grep 'height=40'                        |
gsed -E 's/alt="([^"]+)".+$/\n\1/'      |
grep -v '^<td'

当然、実行結果は先ほどと同じだ。シェルスクリプトだけ見ると何をしているのかわかりにくいが、加工の順序を追っていくと意味がわかるだろう。

業務の自動化は、将来の作業コストを減らす意味で投資でもある。ぜひとも、自動化できる部分をこっそり増やしていってもらいたい。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】APIエコノミーの作り方 [9] APIエコノミーにおけるデザインパターン「API Management」

【連載】APIエコノミーの作り方 [9] APIエコノミーにおけるデザインパターン「API Management」

監視も含めて複数のAPIを集中的に管理する考え方を「API Management」と呼びます。設計/実装に落とし込む場合、デザインパターンとして「API Gatewayパターン」が使われます。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る