Apprendre les principes fondamentaux de Nokogiri Gem

Le monde tourne de plus en plus vite et cette accélération est évidente dans toutes les facettes de nos vies. Surtout lorsqu’il s’agit d’entreprises, la priorité est à la vitesse. Dans cette frénésie accélérée, la volatilité est la seule constante. Pour suivre le rythme et garder une longueur d’avance face à une concurrence de plus en plus féroce, les entreprises recherchent des moyens d’accroître leur efficacité et d’accélérer leur mise sur le marché. Cela explique la frénésie derrière la popularité des langages de programmation comme Ruby on Rails. Ce qui rend Ruby on Rails encore plus étonnant, c'est le grand nombre de joyaux qui le contiennent. Imaginez un outil et vous l'avez probablement dans votre kit Ruby. L'un des meilleurs joyaux de Ruby on Rails est Nokogiri, une bibliothèque permettant de gérer les documents XML et HTML. L'utilisation la plus courante d'un analyseur comme Nokogiri est d'extraire des données de documents structurés. Exemples:

  • Une liste de prix provenant d'un site Web de comparaison de prix.
  • Liens de résultats de recherche à partir d’un moteur de recherche.
  • Une liste de réponses provenant d'un site de questions-réponses.

Installation:

OS X :

Pour installer libxml2 depuis macports :

$ port sudo installer libxml2 libxslt

Puis pour installer nokogiri :

$ sudo gem installer nokogiri

Linux :

On Linux, we still need to install libxml2. The command for installing libxml2 will vary based on the package manager and Linux distribution we’re using.

Sur Fedora :

$ sudo yum install libxml2-devel libxslt-devel

Gemme $ installer Nokogiri

Sur Ubuntu :

$ sudo apt-get install libxml2 libxml2-dev libxslt libxslt-dev

Gemme $ installer Nokogiri

Premiers pas avec Nokogiri :

Une fois Nokogiri installé, nous pouvons commencer à l'utiliser. Nokogiri peut utiliser des sélecteurs XPath ou CSS3. La possibilité d'utiliser des sélecteurs CSS en fait un très bon choix pour extraire des données à partir de documents HTML.

require ‘rubygems’

require ‘nokogiri’

require ‘open-uri’

As well as requiring the nokogiri gem we would need open-uri so that contents of a URL can be easily found. We then create a new Nokogiri HTML document and pass it the contents of the search results page. With that Nokogiri document we can then use at_css, passing the CSS selector “title” to retrieve the contents of the <title> element. The at_css method will return the first matching element and we can call .text on that element to get its text content. Finally we use puts to print out the text.

Analyse de base :

Nokogiri vous permet d'analyser un document HTML ou XML en utilisant différentes stratégies :

  • DOMAINE
  • SAXO
  • Lecteur
  • Tirer

Chacune de ces stratégies présente des avantages et des inconvénients différents. L'interface DOM est la plus courante et généralement considérée comme la plus simple à utiliser.

Chaque produit qui est le dernier élément d’une rangée a une classe différente :

<div class="”product" lastcol”>
<a href="/fr/”/product/f05f/”/" class="”product_link”">
<img
src=”/images/dot_clear.gif”
title=”Destroy sleep with this powerful energy shot – in a reusable shotgun shell bottle.”
alt=”Zombie Blast Energy Shots 3 Pack”
width=”125″
height=”125″
class=”lazy”
data-original=”http://a.tgcdn.net/images/products/thumb/largesquare/f05f_zombie_blast_energy_shots.jpg”
/>
<h4>Pack de 3 tirs d&#039;énergie Zombie Blast</h4>
</a>
<p>$9.99</p>
</div>

This means in order to get the name of the products, we’d say:

Anglais: Starting at the root of the document: look in every div that has a class name containing the word ‘product’. Inside that find a link. In that link find h4 text.

XPath : //div[contains(@class,’product’)]/a/h4

The XPath equality operator only matches complete values, in this case a string. XPath only matches whole class names so div[@class=’product’] in Xpath would not work to get the last column as you might expect.

Référence:

https://github.com/sparklemotion/nokogiri

Abonnez-vous pour les dernières mises à jour

Articles Similaires

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

French
English
English
Japanese
German
French
Spanish

WhatsApp nous

Quitter la version mobile