Hello,
En attendant un tuto sur hpricot, est ce que quelqu'un peut me donner un exemple svp ? Par exemple, récupérez tous les titres des news de la page d'accueil developpez.com.
Voila je suis perdu et je voudrais voir un cas concret.
Merci
Hello,
En attendant un tuto sur hpricot, est ce que quelqu'un peut me donner un exemple svp ? Par exemple, récupérez tous les titres des news de la page d'accueil developpez.com.
Voila je suis perdu et je voudrais voir un cas concret.
Merci
.
Heureux soient les fêlés car ils laisseront passer la lumière.
Michel Audiard
Salut,
En espérant que ça t'aide déjà un peu :
La technique est toujours plus ou moins la même :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 require 'rubygems' require 'hpricot' require 'open-uri' doc = Hpricot(open('http://developpez.com')) # => #<Hpricot::Doc {elem <html> {elem <head> ... pas mal de choses ... }> tds = doc.search('td.tdt') # => #<Elements[...]> # search('expression CSS') retourne un objet Elements qui est un Enumerable, # donc on peut utiliser each, collect, etc. dessus : titres = tds.collect { |td| td.inner_text.strip } # => ["Tutoriel : Déployez ...", "Téléchargez : L'EDI ...", ...] # ici on récupere des String grâce à Elem#inner_text titres[0] # => "Tutoriel : Déployez automatiquement les mises à jour ..."
- récuperer tout le document HTML dans un objet Doc
- utiliser search pour isoler les éléments interessants (retourne un objet Elements qui est grosso-modo un tableau d'objets Elem (chaque Elem représente un noeud))
- utiliser inner_text/inner_html pour transformer les Elem en String puis les méthodes classiques de la classe String (gsub, match, strip ...)
A noter :
- search permet d'utiliser des expressions CSS ou XPath (personnellement je préfère CSS car je connais mieux)
- on peut utiliser search aussi sur un objet Elem, pour "affiner" la recherche. Dans ce cas la recherche ne porte que sur les enfants du noeud en question
Bon courage
Toute la documentation Ruby on Rails : gotapi.com/rubyrails
Mes articles :
> HAML : langage de template pour Ruby on Rails
Ah ça va mieux quand c'est bien expliqué ligne par ligne, je comprends mieux le truc, je me vais me faire la main sur plusieurs sites.
Merci
.
Heureux soient les fêlés car ils laisseront passer la lumière.
Michel Audiard
Que cela soit HPricot ou REXML, le tout est de savoir aussi utilisé les XPath.
Le restant est d'une simplicité déconcertante.
Nul ne peut mieux connaitre la connaissance qu'elle-même.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager