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