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é :

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é
Voir aussi : Représentation des résultats
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::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 :

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::Images, en ne conservant que les images supérieures à 500x500 pixels :

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=
Notez que les expressions régulières nécessitent d'échapper un certain nombre de caractè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 :
