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 ~ $
時刻の取得を実行
取得した時刻情報
取得したメッセージ
(時期によって異なる)
メッセージの取得