«前の日記(2010年 02月08日(Mon)) 最新 次の日記(2010年 02月11日(Thu))» 編集

日記のような何か

2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|08|09|10|11|12|
2020|01|02|03|04|06|07|08|09|10|11|12|
2021|01|02|03|04|05|07|08|10|11|12|
2022|01|

ようこそいらっしゃいました。
あなたは今日人目、合計人目のお客様です(ちなみに昨日は人のお客様がいらっしゃいました)。
よろしければツッコミに足跡等を残していって下さいな。

My status ← skypeやってます。


2010年 02月09日(Tue) [長年日記]

_ [TCG][プログラム][ruby]ブシロードTCGカードリストリーダー

以前同じものを作ったんだけど、IEが7になったせいか、文字コードのあたりでエラー吐くようになってたので、クラスっぽく書き直した。本当は1行直すだけでOKな気がしたけど。

 #coding: utf-8

 require 'rubygems'
 require 'mechanize'
 require 'watir'

 module BushiroadTCGReader
   class ExpansionList
     include Enumerable
     def initialize(uri)
       @list = []
       agent = WWW::Mechanize.new
       page = agent.get uri
       (page/"div[@id='expansionList'] a").to_a.each{|link|
         @list << CardList.new(uri, link.inner_text.strip)
       }
       self
     end
     def [](index)
       @list[index]
     end
     def each
       @list.each{|i|
         yield i
       }
     end
   end

   class CardList
     include Enumerable
     attr_reader :expansion
     def initialize(uri, expansion)
       @uri = uri
       @expansion = expansion
       @list = []
     end
     def get
       ie = Watir::IE.new
       ie.goto @uri
       ie.link(:text, @expansion).click
       sleep 2
       str = ''
       array = []
       n = 0
       begin
         flag = false
         ie.document.Links.each{|i|
           if i.Href =~ /cardno/
             array << Card.new(i.Href)
           end
           if i.InnerText == '≫'
             flag = true
           end
         }
         ie.link(:text, '≫').click if flag
       end while flag
       ie.close
       @list = array
       self
     end
     def [](index)
       @list[index]
     end
     def each
       @list.each{|i|
         yield i
       }
     end
   end

  class Card
     include Enumerable
     def initialize(uri)
       @uri = uri
       @array = []
     end
     def get
       agent = WWW::Mechanize.new
       page = agent.get @uri
       @array = (page/'table.status td').to_a.inject([]){
         |array, e| array << e.inner_html
       }
       self
     end
     def [](index)
       @array[index]
     end
     def each
       @array.each{|i|
         yield i
       }
     end
   end
 end

Ruby1.9っぽいけど、Nokogiriが動かないので1.8.7でのみ確認。

 #coding: utf-8

 require 'bushiroad'
 require 'kconv'

 e = BushiroadTCGReader::ExpansionList.new(
   "http://svsm.jp/jsp/cardlist")
 e[3].get[7].get.each{|i|
   puts i.tosjis
 }

と書くとこんな結果。

<img src="../jsp-material/img/t044.gif" alt="カード"><br>
<a href="javascript:void(0);" onclick="JavaScript:showQu
estion('No_T044');">≫ このカードに関するQ&amp;A</a>


浅倉 南<br><span class="kana">アサクラミナミ - マネージ
ャー</span>
<a href="cardlist?cardno=No_T045">上杉 達也</a><br><spa
n class="kana">ウエスギタツヤ - スタート地点</span>
No_T044
U
サンデー
タッチ
<img src="../jsp-material/img/icon_woman.gif">
2
2500
3000
【約束して、必ず勝つって】<br>【自】〔ベンチ〕このカード
がサポートした時、<font color="red">あなたのリングに<img
 src="../jsp-material/img/icon_man_s.gif">がいて、あなた
のリタイヤが相手より多いなら、</font>そのアタックはパート
ナーアタックになる。<br><img src="../jsp-material/img/ic
on_hiroin_b.gif"><img src="../jsp-material/img/icon_supo
tu_r.gif">
-<br>

- -

_ [TCG]サンデーVSマガジンカードリスト(エクセル版)

要望があったのでアップ。ただしやっつけ仕事。タグの置き換えとかしてないので、使う人が頑張って置き換えると良い。

svsm.zip

後、変換ミスとかそもそも公式のミスとかあるかも。っていうかぶっちゃけ第6弾は公式からして酷い。

本日のツッコミ(全1件) [ツッコミを入れる]
_ ひろゆ (2010年 02月11日(Thu) 12:14)

要望を出した人登場wありがとです。<br>プログラム的な詳しいことは解らんけど、使いそうなカードは個人的に修正していきますので〜


Googleカスタム検索

my recommend books