Ergebnisfilter
In A-Parser gibt es die Möglichkeit, Ergebnisse nach einem Satz bestimmter Regeln zu filtern und nur die erforderlichen Daten im Ergebnis zu speichern.
Verwendung der Filterung
Grundlegende Anwendungsszenarien:
- Speichern nur der Links, die ein bestimmtes Vorkommen einer Zeichenfolge enthalten (z. B. ein CMS-Merkmal)
- Filtern einer Domain-Datenbank nach bestimmten Parametern (z. B. Yandex IKS ab 300, Sprache RU)
- Überprüfung der Antwort vom Server (z. B. 200 OK oder das Vorhandensein bestimmter Header)
- Überprüfung, ob die ursprüngliche Abfrage im Snippet enthalten ist
- Alle anderen Anwendungsfälle, bei denen Ergebnisse nach bestimmten Bedingungen eingeschränkt werden müssen
Filter können im Task-Editor hinzugefügt werden, indem Sie auf das Werkzeug-Icon neben dem entsprechenden Parser klicken:

Typen der Filterung
Es können sowohl einzelne Ergebnisse als auch Ergebnis-Arrays gefiltert werden. Es gibt verschiedene Filtertypen:
- Nach Gleichheit oder Ungleichheit von Zeichenfolgen
- Nach Vorhandensein oder Fehlen eines Teilstrings
- Nach Übereinstimmung oder Nichtübereinstimmung mit einem regulären Ausdruck
- Numerische Werte können nach größer, kleiner und Gleichheit gefiltert werden
Siehe auch: Darstellung der Ergebnisse
Besonderheiten der Arbeitsweise
- Beim Filtern von Ergebnis-Arrays verbleiben im Array nur die Ergebnisse, die dem Filter entsprechen
- Beim Filtern von einfachen Ergebnissen wird, wenn das Ergebnis nicht dem Filter entspricht, das Ergebnis für diese Abfrage vollständig übersprungen, auch bei Verwendung mehrerer Scraper
- Bei Verwendung von zwei oder mehr Filtern in einer Aufgabe wird zwischen ihnen ein logisches UND angewendet; mit anderen Worten, das Ergebnis wird nur gespeichert, wenn es alle Filterbedingungen gleichzeitig erfüllt
- Beim Vergleich im Feld zur Angabe des Wertes (Zeichenfolge, regulärer Ausdruck oder numerischer Wert) kann die Template Toolkit Engine verwendet werden; es stehen alle Variablen zur Verfügung, die auch für das Allgemeine Ergebnisformat verfügbar sind
Beispiele
Filterung nach Text auf der Seite
Überprüfung einer Website-Datenbank auf das Vorhandensein eines bestimmten Textes auf der Seite
Als Abfragen verwenden wir eine Datei mit Links, als Ergebnis erhalten wir eine gefilterte Datei mit Links, bei denen der gesuchte Text vorkommt.
Wir verwenden den Parser
Net::HTTP, um die gewünschte Seite herunterzuladen, und speichern die Abfrage (den geprüften Link) im Ergebnis. Wir filtern das Ergebnis $data - den Inhalt der heruntergeladenen Seite, stellen den Filtertyp auf Enthält Zeichenfolge ein und geben die Zeichenfolge selbst an:

Filterung von Bildern nach Größe
Filterung von Bildern nach Auflösung
Wir filtern die Höhe und Breite des Bildes bei der Datenerfassung über
SE::Google::Images und speichern nur die Bilder, die größer als 500x500 Pixel sind:

Filterung nach mehreren Merkmalen
Filterung von Links nach dem Vorkommen einer von mehreren verschiedenen Zeichenfolgen
Um Links nach mehreren verschiedenen Zeichenfolgen zu filtern, nutzen wir die Möglichkeit, reguläre Ausdrücke anzugeben; dazu schreiben wir mehrere Merkmale durch ein Trennzeichen getrennt:
showthread\.php
/forum/
viewtopic\.php\?t=
Beachten Sie, dass reguläre Ausdrücke das Maskieren einer Reihe von Zeichen erfordern

Verwendung der Abfrage im Filter
Speichern von Google-Snippets, die die ursprüngliche Abfrage enthalten
Als Vergleichszeichenfolge geben wir explizit [% query %] an – die Variable, die die Abfrage enthält, und wählen Groß-/Kleinschreibung beachten, um nach dem Teilstring unter Berücksichtigung der Groß- und Kleinschreibung zu suchen:
