Passer au contenu principal

Filtres de résultats

Dans A-Parser, il existe la possibilité de filtrer les résultats selon un ensemble de règles définies et de ne conserver dans le résultat que les données nécessaires.

Utilisation du filtrage

Principaux cas d'utilisation :

  • Conservation uniquement des liens contenant une occurrence de chaîne spécifique (par exemple, un signe de CMS)
  • Filtrage d'une base de domaines selon des paramètres définis (par exemple, Yandex IKS supérieur à 300, langue RU)
  • Vérification de la réponse du serveur (par exemple, 200 OK ou présence de certains en-têtes)
  • Vérification de la présence de la requête initiale dans le snippet
  • Tout autre cas d'utilisation où il est nécessaire de limiter les résultats selon des conditions spécifiques

Les filtres peuvent être ajoutés dans l'Éditeur de tâches, en cliquant sur l'icône d'outil en face du scraper concerné :

Option Filtre dans l'Éditeur de tâches

Types de filtrage

Il est possible de filtrer aussi bien des résultats uniques que des tableaux de résultats. Il existe plusieurs types de filtres :

  • Par égalité ou inégalité de chaînes
  • Par présence ou absence d'une sous-chaîne
  • Par correspondance ou non à une expression régulière
  • Les valeurs numériques peuvent être filtrées par supérieur, inférieur et égalité

Caractéristiques de fonctionnement

  • Lors du filtrage de tableaux de résultats, seuls les résultats correspondant au filtre restent dans le tableau
  • Lors du filtrage de résultats simples, si le résultat ne correspond pas au filtre, alors le résultat pour cette requête est entièrement ignoré, y compris lors de l'utilisation de plusieurs scrapers
  • Lors de l'utilisation de deux filtres ou plus dans une tâche, la logique ET est appliquée entre eux ; en d'autres termes, le résultat sera conservé s'il correspond simultanément aux conditions de tous les filtres
  • Lors de la comparaison dans le champ de valeur (chaîne, expression régulière ou valeur numérique), il est possible d'utiliser le moteur de gabarit Template Toolkit, toutes les variables analogues au Format général des résultats sont disponibles

Exemples

Filtrage par texte sur la page

Vérification d'une base de sites pour la présence d'un texte spécifique sur la page
Comme requêtes, nous utilisons un fichier avec des liens, et nous obtenons en résultat un fichier filtré avec les liens sur lesquels le texte recherché est présent.

Nous utilisons le scraper Net::HTTPNet::HTTP pour télécharger la page recherchée, nous enregistrons la requête (le lien que nous vérifions) dans le résultat. Nous filtrons le résultat $data - le contenu de la page téléchargée, nous définissons le type de filtre sur Contient la chaîne et indiquons la chaîne elle-même :

Exemple de filtrage par texte sur la page

Filtrage d'images par taille

Filtrage d'images par résolution
Nous filtrons la hauteur et la largeur de l'image lors de la collecte de données via SE::Google::ImagesSE::Google::Images, en ne conservant que les images supérieures à 500x500 pixels :

Exemple de filtrage d'images par taille

Filtrage par plusieurs critères

Filtrage de liens par l'occurrence de n'importe laquelle de plusieurs chaînes différentes
Pour filtrer les liens par plusieurs chaînes différentes, nous utiliserons la possibilité d'indiquer des expressions régulières, pour cela nous inscrivons plusieurs critères via un séparateur :

showthread\.php
/forum/
viewtopic\.php\?t=
note

Notez que les expressions régulières nécessitent d'échapper un certain nombre de caractères

Exemple de filtrage par plusieurs critères

Utilisation de la requête dans le filtre

Conservation des snippets Google contenant la requête initiale
Comme chaîne de comparaison, nous indiquons explicitement [% query %] - la variable qui contient la requête, et nous choisissons Respecter la casse pour rechercher la sous-chaîne en tenant compte de la casse des caractères :

Exemple d'utilisation de la requête dans le filtre