Rubyによるクローラー開発技法とゆう書籍を見ながら実装しております。
require 'cgi' def parse(page_source) dates = page_source.scan( %r!(¥d+)年 ?(¥d+)月 ?(¥d+)日<br />!) url_titles = page_source.scan( %r!^<a href="(.+?)">(.+?)</a><br />!) url_titles.zip(dates).map { |(aurl, atitle), ymd | [CGI.unescapeHTML(aurl), CGI.unescapeHTML(atitle), Time.local(*ymd)] } end x = parse(open("samplepage.html", &:read)) x[0,2]
この結果でエラーがでます。
エラー内容は、
sbcr2.rb:12:in `local': wrong number of arguments (given 0, expected 1..8) (ArgumentError) from sbcr2.rb:12:in `block in parse' from sbcr2.rb:10:in `map' from sbcr2.rb:10:in `parse' from sbcr2.rb:17:in `<main>'
です。
page_sourceにurlがないのもエラー原因かと思い、このコードを付け足しましたが、結果変わらずでした。
# page_source = open("samplepage.html", &:read)
コードは書籍通り書いております。
ご教示お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/08 09:27 編集
2018/01/08 10:48
2018/01/11 08:02