Vai al contenuto principale

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:

Opzione Filtro nel Task Editor

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
suggerimento

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

Esempio di filtrazione per testo sulla pagina

Filtrazione delle immagini per dimensione​

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

Esempio di filtrazione delle immagini per dimensione

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=
nota

Si prega di notare che le espressioni regolari richiedono l'escape di alcuni caratteri

Esempio di filtrazione per più criteri

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:

Esempio di utilizzo di una query in un filtro