以前Rubyでクローラー作成、スクレイピング制作を少ししたので、今回はRubyで何か興味あるものをスクレイピングすることにしました。
今回は、遊戯王カードを様々なところからスクレイピング、編集してツイートするTwitter botを作りました。
遊戯王カードをドローし続ける遊戯bot
1時間毎に、約6000枚の遊戯王カードの中からランダムに1枚引いて、そのカード画像をツイートするだけのbotを昔作りました。
そろそろ6000回目のドローに達しそうなので記録として残しておきます。
こんな感じのbot↓
他、主な仕様としては以下の通り
- 属性、レベル(ランク)、種族をハッシュタグにして同じ数値、種族のカードを調べやすくする
- 融合・儀式・シンクロ・エクシーズなど特殊な召喚方法のモンスターも召喚方法をハッシュタグ化
- ペンデュラムモンスターはペンデュラムスケールもハッシュタグにする
- カードの効果はカード画像とは別に、読みやすく編集して大きく記載しておく
コトの始まり
小学生の頃は遊戯王が流行ってましたが、ちょっとだけ手を付けて離れた自分。
(どっちかっていうとこのブログでもよくアクセスのあるガッシュカードにハマってました。)
大学でたまたま先輩が遊戯王をしているところを見て、結構変わってることに驚き、少し興味が。
で、スマートフォンアプリ『遊戯王デュエルリンクス』の事前登録が発表された時に「せっかくだし、今までの遊戯王カードをおさらいしておきたい」と思い、作ることに。
※この時はデュエルリンクスのカード環境が現行のものとは変更されて配信されると知りませんでした(汗)
今までドローしたカードを幾つかピックアップ
遊戯王そんなに詳しくない自分が選んでるので、決闘者の人から見たらおなじみのカードかもしれないけど、そこはお許しを。
クリフォート・アセンブラ
機械族のペンデュラムモンスター。
なによりもエラー出力&文字化け風のフレーバーテキストに驚きました。
遊戯王の数少ないお遊びが見れて面白いです。
(しかもこれ、ちゃんと解読できるんですね
究極幻神 アルティミトル・ビシバールキン
シンクロモンスターで、まさかのレベル0。
名前とイラスト枠の間に見事に何もありません。
bot制作においてしたこと
カード画像のスクレイピング
nokogiriを用いて行いました。
同じカードでレアリティが異なるカードは低い?レアリティの方を選択。
カードの効果のスクレイピング、編集
nokogiriを用いてカードのテキストを取得。
そのままではリミットレギュレーションや余計な情報が載ってる場合があるので編集。
カードの召喚方法の分類、効果文に適切に改行入れて読みやすくしたり、ペンデュラムカードのペンデュラム効果とモンスター効果を分けたり細々とした作業をします。
カード画像とは別にスクレイピングしてるので、合ってるか簡単に照合も。
カード画像とテキストを枠に収めて1枚の画像にまとめる
RMagickを使用。
モンスター用の枠、魔法・罠用の枠、ペンデュラム用の枠にカード画像と、編集したテキストをはみ出さないように載せます。
カードの相場を調べる
カードってたまにとんでもない値段がつくのをご存知でしょうか?
カードの相場が知りたかったのでAPIでカードを検索してリンク掲載。
まとめ
遊戯王カードに関しては知識が10年ぐらい前で止まっていたので、色んな知らないカードがいっぱいで、驚きの連続でした。
まだ残りの神のカード『オシリスの天空竜』と『オベリスクの巨神兵』が引けてませんが、気長にこのbotの引くカードを見守っていきたいと思います。
ついでに、5枚揃った時に効果が出る『封印されしエクゾディア』や『ウィジャ盤』が揃うのも心待ちにしてます(果たして揃うのだろうか。
リンク召喚、リンクモンスターについて
2月17日、フラゲ情報から新しくリンク召喚という召喚方法が追加されることが判明しました。
詳しいリンクモンスターのカード画像などは他サイトに任せるとして、このリンクモンスターの登場で新しくbotの仕様も変えることに。
リンクモンスターの特徴
- レベルを持たない
- 守備力を持たない(LINK数が記載されてる)
- 8方向に向いたマーカーが付いた
これを現状のbotに適用すると、恐らくハッシュタグでLINK数、レベルや守備力の表記を無くす等の変更ですかね…。
マーカーの方向は未定です。
それにしても、リンクモンスター置かないとEXデッキのモンスターが展開できないとはなかなかな縛りを入れてきましたねKONAMIさん…。
今までならシンクロやエクシーズ、ペンデュラムを追加するだけで良かったのに、過去作のキャラクターもリンクモンスターを使わざるを得ない状況にしてしまいました。
これがどう影響するのか、若干不安ですが、続報を待っておきます。