Przejdź do treści głównej

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:

Opcja Filtr w Edytorze zadań

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
wskazówka

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

Przykład filtrowania według tekstu na stronie

Filtrowanie obrazów według rozmiaru​

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

Przykład filtrowania obrazów według rozmiaru

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

Należy pamiętać, że wyrażenia regularne wymagają escapowania niektórych znaków

Przykład filtrowania według kilku kryterió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:

Przykład użycia zapytania w filtrze