J'essaie d'utiliser Hpricot pour obtenir la valeur dans une plage avec un nom de classe que je ne connais pas. Je sais qu'il suit le modèle "foo_ [plusieurs chiffres] _bar".Recherche Hpricot avec Regex
À l'heure actuelle, j'obtiens l'ensemble de l'élément contenant sous la forme d'une chaîne et en utilisant une regex pour analyser la chaîne pour l'étiquette. Cette solution fonctionne, mais elle semble vraiment moche.
doc = Hpricot(open("http://scrape.example.com/search?q=#{ticker_symbol}"))
elements = doc.search("//span[@class='pr']").inner_html
string = ""
elements.each do |attr|
if(attr =~ /foo_\d+_bar/)
string = attr
end
end
# get rid of the span tags, just get the value
string.sub!(/<\/span>/, "")
string.sub!(/<span.+>/, "")
return string
Il semble qu'il devrait y avoir une meilleure façon de procéder. Je voudrais faire quelque chose comme:
elements = doc.search("//span[@class='" + /foo_\d+_bar/ + "']").inner_html
Mais cela ne fonctionne pas. Existe-t-il un moyen de rechercher avec une expression régulière?
Cela ressemble à ce que je veux. Je vais essayer et voir comment ça se passe. – AaronM
A travaillé parfaitement! C'est exactement ce que je voulais. – AaronM