Accueil guide utilisateur

Règles de détection

Les règles de détection sont un moyen de spécifier la partie d'une page web qui doit être extraite quand la détection automatique ne convient pas pour un site web particulier.

Cela est un peu technique car cela met en jeu des expressions régulières et des requêtes xPath. Néanmoins cela offre un moyen d'extraire le contenu voulu quelque soit la façon dont le site est construit.

Les règles de détection sont configurées dans l'écran des options accessible en cliquant sur Options dans le menu.
options menu item

L'écran des options apparaît.
options
En cliquant sur le bouton detection rules elles apparaissent.
rules button

detection rules

Pour ajouter une nouvelle règle, cliquer sur le bouton Add rule.
add rule

Un formulaire apparaît pour que vous entriez la description de la règle.
add rule

Il faut tout d'abord lui donner un nom (name). Il s'agit juste du nom qui apparaît dans la liste à gauche une fois la règle ajoutée.
Le deuxième champ doit contenir une expression régulière (regular expression). A chaque fois qu'un contenu est sur le point d'être extrait d'une page (ou d'un flux), si l'url de la page valide l'expression régulière entrée, alors la règle est appliquée.
Dans l'exemple ci-dessus il est spécifié que la règle doit s'appliquer à chaque page dont l'url contient 'name_of_site'.
Le champ xPath permet de renseigner quelle partie de la page doit être extraite.
Dans l'exemple ci-dessus il est indiqué d'extraire les noeuds dont l'id vaut 'article': //*[@id='article']
Un autre exemple serait d'extraire les noeuds avec la classe 'myClass': //*[@class='myClass']

Dans la plupart des cas la zone à extraire a un id, ou une classe. si par malchance la page n'a ni id, ni classe ou autre attribut qui pourrait facilement identifier la zone a extraire, alors il faut utiliser la chemin xPath complet de l'élement html. Le xPath à renseigner dans GrabMyBooks dans le cas d'un chemin complet xPath commence après l'élément body. Exemple: /html/body/table[2]/tbody/tr/td[6]. Il faut entrer: /table[2]/tbody/tr/td[6].

Voici quelques exemples montrant comment selectionner précisément le contenu à extraire.

Une fois la règle ajoutée après un clic sur Ok, elle apparaît à l'écran dans la liste à gauche. En cliquant dessus il est possible de l'éditer et surtout de changer sa position dans la liste.

L'adresse d'une page peut déclencher plusieurs expressions régulières ce qui signifie qu'elle peut être compatible avec plusieurs règles de détection. Dans un tel cas, la règle qui se situe le plus en haut de la liste sera utilisée.
rule priority

Editeur de règles

Dans l'écran des options, des règles de détection peuvent être définies pour décrire précisément quelles parties de la page doivent être extraites sur un site web particulier. Définir les règles à la main est un peu technique car le language xPath est utilisé pour définir les zones à extraire. L'éditeur de règles permet de définir des règles graphiquement, en utilisant seulement la souris. Lorsque vous vous trouvez sur une page pour laquelle la détection automatique ne convient pas, cliquez sur Rule editor dans le menu. Le panneau de l'éditeur de règles apparaît à l'écran.
Rule editor menu item

Rule editor panel
Le panneau peut être déplacé sur l'écran en cliquant sur les flêches vertes.

Lorsque vous bougez la souris sur l'écran, les parties que GrabMyBooks peut extraire sont surlignées et la règle xPath correspondante est affichée en bleu sur le panneau.
Rule editor mouse over highlighted zone
Pour voir quelle est la zone automatiquement detectée par GrabMyBooks cocher la boîte à cocher Show default selection. La zone apparaît en gris à l'écran.
Rule editor default selection

Pour selectionner la ou les zones que vous souhaitez attacher à la règle, cliquez dessus. Elles deviennent surlignées en rouge et sont ajoutées dans le panneau de l'éditeur de règles.
Rule editor selection
Si la zone contient des sous élements, vous pouvez décider d'affiner la selection en ne prenant pas en compte les n premiers ou derniers en cliquant sur les boutons correspondants.
Rule editor sub selection
Les deux boutons dans le coin haut gauche permettent d'ommettre les n premiers éléments. Les deux boutons dans le coin bas droit permettent d'ommettre les n derniers éléments. Le bouton dans le coin haut droit restaure les limites de la sous selection.
Rule editor sub sélection example
Pour désélectionner une zone, cliquer à nouveau dessus ou fermer la boîte d'information correspondante dans le panneau de l'éditeur de règles.
Rule editor close selection
Vous pouvez sélectionner autant de zones que vous le souhaitez.

Testez votre sélection en cliquant sur le bouton Add to book. Le contenu extrait est ajouté livre courant.
Rule editor add to book

Puis sauvez votre règle en cliquant sur le bouton Save rule. La partie 'règles de détection' de l'écran des options apparaît et vous laisse sauver la règle. Il est possible d'écraser une règle existante.
Rule editor save rule

Rule editor new or edit rule

Rule editor save rule in options screen
A présent, pour chaque page du site, GrabMyBooks essaiera de détecter les zones décrites par la règle.

Exemple:
Sur ce site web la détection automatique ne convient pas car l'image de l'article n'est pas extraite.
Rule editor example 1
Donc je décide de créer une règle afin de l'inclure. Un clic sur l'image et un clic sur le texte de l'article.
Rule editor example 2
Je teste la règle en cliquant sur le bouton Add to book. Cela semble ok, la règle peut ensuite être sauvée en cliquant sur le bouton Save rule.
Rule editor example 3
Et cela marche aussi avec les autres pages du même site web.
Rule editor example 4

Il est à noter que les règles ne fonctionnent pas avec des noeuds générés côté client avec javascript.

Règle de page suivante

Sur certains sites web, les articles sont affichés en plusieurs pages. Il est alors laborieux d'avoir à extraire chaque page séparément pour obtenir l'article entier. C'est particulièrement vrai quand vous visitez le même site régulièrement pour en extraire du contenu.
Dans une règle de détection, il est possible de spécifier comment atteindre la page suivante d'un article. Lors de l'ajout/édition d'une règle, le champ prévu à cet effet se nomme Next page href is located at xPath.
Next page rule field
Ce champ peut contenir une règle xpath d'attribut censée retournée l'adresse de la page suivant pour l'article. Exemple: //a[@class='next']/@href. Ceci indique que l'adresse de la page suivant de l'article se trouve dans le lien ayant pour classe 'next'.
Biensûr cela varie selon les sites web.

Règle de lien sur la page

Ceci est utile lors de l'extraction de flux. Parfois, les liens des entrées des flux pointent vers une page intermédiaire contenant un lien vers le vrai article. Ceci peut aussi être utile pour les sites web regroupant des contenus d'autres sites. Ils affichent les premières lignes d'un article, puis il y a un lien permettant l'accès au contenu entier.
Dans de tels cas il est possible de définir une règle pour ne pas extraire la page directement mais plutôt un lien sur la page. Lors de l'ajout/édition d'une règle, le champ prévu à cet effet se nomme Don't grab the page itself but a link on the page of which href is located at xPath.
Next page rule field
Ce champ peut contenir une règle xpath d'attribut censée retournée l'adresse de la page à extraire au lieu de la page courante. Exemple: //a/@href. Ceci indique que l'adresse de la page à extraire au lieu de la page courante se trouve dans le premier lien de la page.
Biensûr cela varie selon les sites web.

Accueil guide utilisateur