今度は記事一覧スクリプトでハマる
前回記事一覧を更新したのが、6/18 だったのでそろそろと思い、スクリプトを動かすとファイルが更新されないので見てみると途中でエラーがでて止まっている。
C:/TOOL/ruby/lib/ruby/1.8/net/protocol.rb:133:in `sysread': end of file reached(EOFError)
from C:/TOOL/ruby/lib/ruby/1.8/net/protocol.rb:133:in `rbuf_fill'
from C:/TOOL/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout'
from C:/TOOL/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
from C:/TOOL/ruby/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
from C:/TOOL/ruby/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
from C:/TOOL/ruby/lib/ruby/1.8/net/protocol.rb:126:in `readline'
from C:/TOOL/ruby/lib/ruby/1.8/net/http.rb:2017:in `read_status_line'
from C:/TOOL/ruby/lib/ruby/1.8/net/http.rb:2006:in `read_new'
from C:/TOOL/ruby/lib/ruby/1.8/net/http.rb:1047:in `request'
from C:/TOOL/ruby/lib/ruby/1.8/net/http.rb:769:in `get'
from catidx.rb:103
from catidx.rb:102:in `each'
from catidx.rb:102
前回から特に変更はしていないし、そのときは問題なかった。どこまで処理していたのかをみると今年の一月まででエラーになっているような(実際はそうではなかった。後述)。ということは前回はパスしているはずのところなのだけれど。謎。
エラーメッセージを検索してみても、これだという理由にあたらない。とりあえず rescue したら動作しているけれど、根本的な解決でいいのだろうか? (根本的ではない。そのデータをスキップしているだけ)
という間にもさらに調べていたらどうやら怪しいところがわかった。6/27 の「憑神」のデータでエラーになっている。となると文字コードの問題? dc:title="憑き物こぞりて" から "" 内を取り出そうとしてできずに配列が nil のまま次のデータを push しようとしていたらしい。ということで漢字からひらがなに変えて "つき物こぞりて" にしたところエラーは出なくなった。
そういえば以前にもあったか。タイトルには怪しい漢字を使わないようにしなければいけないということを忘れないように、と。(怪しいっていってもなあ)
| 固定リンク
コメント