Filtri dei risultati
In A-Parser esiste la possibilità di filtrare i risultati in base a un insieme di regole specifiche e salvare nel risultato solo i dati necessari.
Utilizzo della filtrazione
Principali casi d'uso:
- Salvataggio solo dei link che contengono una determinata occorrenza di stringa (ad esempio, un segno di CMS)
- Filtrazione di un database di domini in base a determinati parametri (ad esempio, Yandex TIC da 300, lingua RU)
- Verifica della risposta dal server (ad esempio, 200 OK o presenza di determinati header)
- Verifica della presenza della query originale nello snippet
- Qualsiasi altro scenario in cui sia necessario limitare i risultati in base a determinate condizioni
I filtri possono essere aggiunti nel Task Editor cliccando sull'icona dello strumento accanto allo scraper necessario:

Tipi di filtrazione
È possibile filtrare sia risultati singoli che array di risultati. Esistono diversi tipi di filtri:
- Per uguaglianza o disuguaglianza di stringhe
- Per presenza o assenza di una sottostringa
- Per corrispondenza o mancata corrispondenza a una espressione regolare
- I valori numerici possono essere filtrati per maggiore, minore e uguaglianza
Vedi anche: Visualizzazione dei risultati
Caratteristiche di funzionamento
- Quando si filtrano array di risultati, nell'array rimangono solo i risultati che soddisfano il filtro
- Quando si filtrano risultati semplici, se il risultato non soddisfa il filtro, l'intero risultato per quella query viene saltato, anche in caso di utilizzo di più scraper
- Quando si utilizzano due o più filtri in un task, tra di essi viene applicata la logica AND, in altre parole il risultato verrà salvato se soddisfa contemporaneamente le condizioni di tutti i filtri
- Nel campo di specifica del valore (stringa, espressione regolare o valore numerico) è possibile utilizzare il motore di template Template Toolkit; sono disponibili tutte le variabili analoghe a quelle del Formato generale dei risultati
Esempi
Filtrazione per testo sulla pagina
Verifica di un database di siti per la presenza di un determinato testo sulla pagina
Come query utilizziamo un file con i link; come risultato otteniamo un file filtrato con i link in cui è presente il testo cercato.
Usiamo lo scraper
Net::HTTP per scaricare la pagina richiesta, salviamo nel risultato la richiesta (il link che verifichiamo). Filtriamo il risultato $data - contenuto della pagina scaricata, impostiamo il tipo di filtro Contain string e indichiamo la stringa stessa:

Filtrazione delle immagini per dimensione
Filtrazione delle immagini per risoluzione
Filtriamo l'altezza e la larghezza dell'immagine durante lo scraping tramite
SE::Google::Images, salvando solo le immagini più grandi di 500x500 pixel:

Filtrazione per più attributi
Filtrazione dei link per la presenza di una qualsiasi tra diverse stringhe
Per filtrare i link in base a diverse stringhe, utilizzeremo la possibilità di specificare espressioni regolari, scrivendo più criteri separati dal delimitatore:
showthread\.php
/forum/
viewtopic\.php\?t=
Si prega di notare che le espressioni regolari richiedono l'escape di alcuni caratteri

Utilizzo della query nel filtro
Salvataggio degli snippet di Google che contengono la query originale
Come stringa di confronto indichiamo esplicitamente [% query %] - la variabile che contiene la query, e selezioniamo Sensitive per cercare la sottostringa rispettando le maiuscole/minuscole:
