def scrape!(url)
Anemone.crawl(url) do |anemone|
anemone.on_pages_like %[/events/detail/.*] do |page|
show = {
headliner: page.doc.at_css('h1.summary').text,
openers: page.doc.at_css('.details h2').text
}
puts show
end
end
end
ボンネットの下にノコギリを使ったアネモネでスクレイパーを書いています。
.details h2'
セレクターが HTML にないために何も返さない場合があり、セレクターを呼び出すtext
と例外がスローされます。
あちこちでif/elseを避けたい...
if page.doc.at_css('.details h2').empty?
openers: page.doc.at_css('.details h2').text
end
一貫性のないマークアップによって生成されたエラーを処理する、より雄弁な方法はありますか? たとえば、CoffeeScript には存在演算子がありperson.name?.first()
ます。HTML に要素がある場合は、オブジェクトを作成してテキストを呼び出します。そうでない場合は、先に進み、ハッシュに追加しないでください。