Filtry wyników
W A-Parser istnieje możliwość filtrowania wyników według zestawu określonych reguł i zapisywania do wyniku tylko niezbędnych danych.
Użycie filtrowania
Główne warianty zastosowania:
- Zapisywanie tylko tych linków, które zawierają określone wystąpienie ciągu znaków (np. cecha CMS)
- Filtrowanie bazy domen według określonych parametrów (np. Yandex IKS od 300, język RU)
- Sprawdzanie odpowiedzi od serwera (np. 200 OK lub zawartość określonych nagłówków)
- Sprawdzanie obecności zapytania źródłowego w opisie (snippet)
- Wszelkie inne warianty zastosowania, gdzie wymagane jest ograniczenie wyników według określonych warunków
Filtry można dodać w Edytorze zadań, klikając ikonę z narzędziem obok odpowiedniego scrapera:

Typy filtrowania
Filtrować można zarówno pojedyncze wyniki, jak i tablice wyników. Istnieje kilka typów filtrów:
- Według równości lub nierówności ciągów znaków
- Według występowania lub braku występowania podciągu
- Według zgodności lub niezgodności z wyrażeniem regularnym
- Wartości liczbowe można filtrować według większości, mniejszości i równości
Zobacz również: Prezentacja wyników
Cechy działania
- Przy filtrowaniu tablic wyników, w tablicy pozostają tylko wyniki spełniające warunki filtra
- Przy filtrowaniu prostych wyników, jeśli wynik nie spełnia warunków filtra, to wynik dla danego zapytania jest w całości pomijany, w tym również przy użyciu kilku scraperów
- Przy użyciu dwóch i więcej filtrów w zadaniu, stosowana jest między nimi logika I, innymi słowy wynik zostanie zapisany, jeśli będzie spełniał warunki wszystkich filtrów jednocześnie
- Przy porównywaniu w polu określania wartości (ciągu znaków, wyrażenia regularnego lub wartości liczbowej) można używać silnika szablonów Template Toolkit, dostępne są wszystkie zmienne analogiczne jak dla Ogólnego formatu wyników
Przykłady
Filtrowanie według tekstu na stronie
Sprawdzanie bazy stron pod kątem występowania określonego tekstu na stronie
Jako zapytań używamy pliku z linkami, w wyniku otrzymujemy przefiltrowany plik z linkami, na których występuje szukany tekst.
Używamy scrapera
Net::HTTP do pobrania szukanej strony, w wyniku zapisujemy zapytanie (link, który sprawdzamy). Filtrujemy wynik $data - treść pobranej strony, ustawiamy typ filtra Contain string i podajemy sam ciąg:

Filtrowanie obrazów według rozmiaru
Filtrowanie obrazów według rozdzielczości
Filtrujemy wysokość i szerokość obrazu podczas scrapowania przez
SE::Google::Images, zapisujemy tylko te obrazy, które są większe niż 500x500 pikseli:

Filtrowanie według kilku cech
Filtrowanie linków według wystąpienia dowolnego z kilku różnych ciągów znaków
Aby przefiltrować linki według kilku różnych ciągów, skorzystamy z możliwości określania wyrażeń regularnych, w tym celu zapiszemy kilka cech przez separator:
showthread\.php
/forum/
viewtopic\.php\?t=
Należy pamiętać, że wyrażenia regularne wymagają escapowania niektórych znaków

Użycie zapytania w filtrze
Zapisywanie snippetów Google, w których zawarte jest zapytanie źródłowe
Jako ciąg do porównania jawnie wskazujemy [% query %] - zmienną, która zawiera zapytanie, wybieramy Sensitive, aby wyszukać podciąg z uwzględnieniem wielkości znaków:
