330

16

IoT

1

節 インターネット上のデータを

curl

wget

で取得する

 curlは,インターネット上のデータを取得するため
のコマンドです.ここではインターネットからファイ
ルを取得する方法について説明します.まずは,
Raspberry PiのRaspbianを使用し,LXTerminalか
ら以下のようにcurlコマンドを実行してみてくださ
い.
  $ curl﹈-s﹈www.geocities.jp/

bokunimowakaru/cq/pi.txt

 図16-1のように,指定したURLのテキスト・ファ
イルをインターネットから取得し,情報が表示されま
す.この情報は本書のサポート・ページの更新情報で
す.更新頻度は,数カ月に1回程度か,場合によって
はもっと長期間になるかもしれません.
 オプションの「-s」は,取得時の進捗状況やエラー
などを表示させないためのオプションです.その次の
URLは取得するファイルのインターネット・アドレ
スです.ここでは「http://」を省略しましたが,明示
することでプロトコルを指定することも可能です.も
ちろん,ウェブ・ページなどのHTMLファイルを取
得することも可能です.
 今度は,時刻を取得してみましょう.下記を実行す
ると,(独立行政法人)情報通信研究機構が配信する時
刻情報を取得することができます.
  $ curl﹈-s﹈ntp-a1.nict.go.jp/

cgi-bin/time

 ただし,こういったサービスは,配信する団体等の
都合で終了する可能性もあります.何のデータも得ら
れなかった場合や,HTMLで書かれたエラーが表示
された場合は,ご容赦ください.またサービスによっ
ては,販売や運用目的で利用する場合にサービス提供
者との契約やサービス利用料の支払いが必要になりま
す(以降で紹介するサービスも同様).
 次に,類似のコマンドwgetを使ってみましょう.
以下のように入力してみてください.
 $ wget﹈-q﹈-O﹈/dev/

stdin﹈www.geocities.jp/

bokunimowakaru/cq/pi.txt

 このwgetコマンドの第1引き数の「-q」は,curlコ
マンドの「-s」に相当し,取得時の状況表示やエラー
表示を無効にします.第2引き数の「-O/dev/stdin」
は,標準入力に取得内容を出力するためのオプション
です.このオプションを省略すると,現在のフォルダ
にファイルとして保存されます.
 このように,curlコマンドを使ってもwgetコマン
ドを使っても同じようなことを実現することができま
す.どちらかと言えば,curlコマンドはインターネッ
ト上のデータにアクセスする際に使われ,wgetコマ
ンドはインターネット上のコンテンツのダウンロード
に使われることが多いです.本書ではcurlコマンド
を用いることにします.

図16-1 インターネットから情報を取得したときのようす

pi@raspberrypi ~ $ curl -s www.geocities.jp/bokunimowakaru/cq/pi.txt

<title> 

これはテキストによるメッセージ配信の実験です。</title>

<descr> 

以下、お知らせ、近況、関連URL、更新日の情報です。</descr>

<info> 

今のところ[お知らせ]はございません。</info>

<state> 

現在のボクの[近況]は本書の執筆中です。</state>

<url> http://www.geocities.jp/bokunimowakaru/cq/15/</url>

<date> 2016/01/11</date>

pi@raspberrypi ~ $ curl -s ntp-a1.nict.go.jp/cgi-bin/time

Mon Jan 11 19:46:00 2016 JST

pi@raspberrypi ~ $

時刻の取得を実行

取得した時刻情報

取得したメッセージ

(時期によって異なる)

メッセージの取得