記事一覧はこちら

任天堂のMiiverseをウェブスクレイピングするソフト

スプラトゥーン面白いよ楽しいね。ゲームはもちろんだけど、Miiverseのネタ絵も面白くて最高だよ。 そんな訳で、新着投稿と1日ごとの人気投稿をDLするソフトを作りました。 fushihara/MiiverseImageGetter 制限はこんな感じ

  • 全ての通信は同時に1リクエスまで。1リクエストごとに1秒以上の間隔が開いています
  • 新着画像は前回の通信時に取得した所まで、人気投稿は新しい日付が追加された時しか取得しません
  • Miiverseは投稿に返信が出来ますが、返信はウェブスクレイピングの対象外
  • ユーザー名は保存しない。個別のURLに含まれる投稿IDのみで区別する

特徴はこんな感じ

  • 収集するデーモンはjava。service化するとかで立ち上げっぱなしにして下さい。1時間に1度の取得時以外はThread.sleepしてます
  • スマホ対応の閲覧機能はphp.htaccessapache標準のindex ofをちょこっと改造した程度だから特に大したことはしてない
  • 設定はpropertiesファイルにて。jarでやる時はリソースを差し替える必要あり

通勤時にMiiverseの画像を見るのがとても楽しみになりました。 スマホ対応の閲覧機能はこんな感じ。最低限これでいいんです。 imgTemp-2015-06-05-02-10-11 設定ファイルの中身はこんな感じ。リクエストヘッダのAccept-Languageで言語切り替えてるみたいなので、jpの指定も必要。

#miiverseのアカウント情報。新着を取らないなら不要
miiverse.account.id=xxxxx
miiverse.account.password=xxxxxxx
#取得対象のスレッドを指定。miiverse.target.で前方一致してるだけなので、適当に重複しない文字を付けて下さい
miiverse.target.0=14866558073673172576/14866558073673172583,スプラトゥーン
miiverse.target.1=14866558073650090735/14866558073650090748,ゼノクロ
#DL先のディレクトリを指定。このディレクトリの下にゲームタイトル/hot/2015-01-01/xxxxx.png とファイルを作る
miiverse.saveDirectory=./../../ダウンロード/
#リクエストに使うUA
http.header.useragent=xxxxx
#リクエスト時に追加する任意のヘッダ。http.header.any.で前方一致してるだけなので重複しないように適当に。
#name:value 形式で、:で2限界の分割してるだけです
http.header.any.1=Accept-Language:ja,en;q=0.8,en-US;q=0.6

DBとか使ってお気に入りとかタグ付けとかする機能も欲しいけど、jarファイルだけで動くようにしたかったので。sqlite使うのもアリだったか。

以上。