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
Écrire un grattoir à Anemone, qui utilise Nokogiri sous le capot ..Comment gérer les NIL avec le grattoir Anemone/Nokogiri?
Parfois, le sélecteur .details h2'
rendement rien parce que son pas dans le code HTML, et appelant text
sur elle déclenche une exception.
Je voudrais éviter si/elses dans tous les sens ...
if page.doc.at_css('.details h2').empty?
openers: page.doc.at_css('.details h2').text
end
est-il un moyen plus éloquent des erreurs de manipulation produites par la marque inconsistant up? Par exemple, CoffeeScript a l'opérateur existant person.name?.first()
. Si le code HTML contient l'élément, great crée l'objet et appelle le texte dessus. Sinon, continuez et ne l'ajoutez pas au hash.
Que voulez-vous faire? Ignore les? –
Tout comme avec tout autre code: vérifiez si une valeur est 'nil' et ne continuez pas (ou réagissez en conséquence). – user2864740