能書き

それっぽいことを書くやつです

Amesh Hacks

東京アメッシュスクレイピングしてわいわいできるようにしたので手順のメモ

まずは画像を探す

みた感じ Canvasで直接描画してる感じではなかったので(フィーリング)、画像を取得して<img>で出してるか、Canvasに書いてるか、だろうな〜と思った
とりあえずChromeのコンソールで「Network」タブ見ながらリロード。
f:id:ikr7:20140801203957p:plain
グワーッ

ファイルいっぱいロードしてて(94個も!)探すのめんどいので「Network」タブの「Filter」→「Images」と選択して画像だけ表示させる。
あったぞ!!!!!!
f:id:ikr7:20140801204355p:plain

どうやら
tokyo-ame.jwa.or.jp/mesh/000/[5分おきの時刻].gif
って感じらしい。

画像 URL を生成してる部分を探す

スクレイピングしてわいわいするにあたって、時刻から 201408012040 みたいな文字列を生成してもいいけど、アメッシュ割と適当で1分くらい平気で遅れるので(やってみるとわかる) ので画像のURLを生成してる箇所を探します。

こんな時に便利なのが「ロードしたファイル全ての中から検索」するやつで、Chromeのコンソールの「Sources」タブで Alt+⌘+F ( WindowsならAlt+Ctrl+F ? ) するとニュッと出てくる。早速「.gif」で検索します。

あっっ!!!!!!!これっぽい!!!!!!11!!
f:id:ikr7:20140801205315p:plain

なるほど〜Amesh.js の 141 行目か〜 となります。で、そのあたりはこんな感じ。
f:id:ikr7:20140801205552p:plain

フムフム this.imageList ね〜 。「Sources」タブで Alt+⌘+F で検索します。
f:id:ikr7:20140801205902p:plain

こんどは initialize.js の 141 行目か〜 って感じになります。その辺を見ます。
f:id:ikr7:20140801210113p:plain

ええっJSONP用!? ということは 画像ファイル名のリストは .js ファイルでロードされてるってことになります。「Network」タブで「Filter」→「Scripts」で抽出します。
f:id:ikr7:20140801210340p:plain

mesh_index.js?9379297 っていうのがメチャ怪しいですね。( JSONP でなんかをロードするとき、ブラウザにキャッシュされないように ?[乱数] ってURLに付与するのはよくあるやり方ですね。 )

で、mesh_index.js?9379297 の中身がこんな感じ。

Amesh.setIndexList(["201408012100","201408012055","201408012050","201408012045","201408012040","201408012035","201408012030","201408012025","201408012020","201408012015","201408012010","201408012005","201408012000","201408011955","201408011950","201408011945","201408011940","201408011935","201408011930","201408011925","201408011920","201408011915","201408011910","201408011905","201408011900"]);

うお〜〜〜!!!!!これだ〜!!!!!

結論

Alt+⌘+F で検索するの死ぬほど便利

BeagleBone Black 買った

一部では入荷9月になるみたいなウワサ出てたけど普通に買えた。でも翌日には通販も店頭も売り切れたらしいのでわりとギリギリだったのかも?
f:id:ikr7:20140609181127j:plain

USBから ssh するなら専用のドライバをPCに入れなきゃいけないらしいけど、普通に LAN ケーブル繋げばいい感じにIPアドレス 振られるのでそのほうが簡単だと思う。

最新バージョン(Revision C)はDebianがプリインストールされてるのでなんもしなくてもそのままいい感じに使える。RubyもGemもPythonもpipもNode.jsもnpmもわりと新しめのが入っててよい感じだった。PHPは入ってません。
f:id:ikr7:20140609181434p:plain

日本語表示しようとすると????..??.???みたいな感じのアレになったので、/etc/locale.gen の ja_JP.UTF-8 UTF-8 のコメントを外して(行頭の#を消して)、

# locale-gen
# update-locale LANG=ja_JP.U‌TF-8 LANGUAGE="ja_JP:ja"
# source /etc/default/locale

して再起動するといい感じに日本語も表示できる。

起動中はLEDがチカチカしててうざいので、.bashrc に

echo 0 > /sys/class/leds/beaglebone:green:usr0/brightness
echo 0 > /sys/class/leds/beaglebone:green:usr1/brightness
echo 0 > /sys/class/leds/beaglebone:green:usr2/brightness
echo 0 > /sys/class/leds/beaglebone:green:usr3/brightness

って書いとくといい。
(06/12 追記)
全部消えてるとちゃんと起動してるかどうか不安になるので 0 と 3だけつける、みたいにすると捗る