Einstellungen
A-Parser enthält die folgenden Einstellungsgruppen:
- Global Settings - grundlegende Programmeinstellungen: Sprache, Passwort, Update-Parameter, Anzahl aktiver Aufgaben
- Threads settings - Einstellungen für Threads und Uniqualisierungsmethoden für Aufgaben
- Parser settings - Möglichkeit, jeden einzelnen Parser zu konfigurieren
- Einstellungen der Proxy-Prüfung - Anzahl der Threads und alle Einstellungen für den Proxy-Checker
- Additional settings - optionale Einstellungen für fortgeschrittene Benutzer
- Aufgaben-Presets - Speichern von Aufgaben zur späteren Verwendung
Alle Einstellungen (außer den allgemeinen und zusätzlichen) werden in sogenannten Presets gespeichert – Sätzen von vorab gespeicherten Einstellungen, zum Beispiel:
- Verschiedene Einstellungs-Presets für den Parser
SE::Google - eines für die Datenerfassung von Links mit einer maximalen Tiefe von 10 Seiten à 100 Ergebnissen, ein anderes zur Bewertung des Wettbewerbs für eine Abfrage, Datenerfassungstiefe 1 Seite à 10 Ergebnissen - Verschiedene Presets für Proxy-Checker-Einstellungen – separat für HTTP- und SOCKS-Proxys
Für alle Einstellungen gibt es ein Standard-Preset (default), das nicht geändert werden kann; alle Änderungen müssen in Presets mit neuen Namen gespeichert werden.
Allgemeine Einstellungen

| Parametername | Standardwert | Beschreibung |
|---|---|---|
| Password | Kein Passwort | Passwort für den Login in A-Parser festlegen |
| Language | English | Oberflächensprache |
| News and tips | English | Sprache für News und Tipps |
| Enable tips | ☑ | Legt fest, ob Tipps angezeigt werden sollen |
| Check for updates | ☑ | Legt fest, ob Informationen über die Verfügbarkeit eines neuen Updates in der Statusleiste angezeigt werden sollen |
| Save window size | ☐ | Legt fest, ob die Fenstergröße gespeichert werden soll |
| Update channel | Stable | Auswahl des Update-Kanals (Stabil, Beta, Alpha) |
| Tasks per page | 5 | Anzahl der Aufgaben pro Seite in der Aufgabenwarteschlange |
| Max active tasks | 1 | Maximale Anzahl aktiver Aufgaben |
| Total thread limit | 10000 | Gesamtlimit der Threads in A-Parser. Eine Aufgabe wird nicht gestartet, wenn das Gesamtlimit der Threads kleiner als die Anzahl der Threads in der Aufgabe ist |
| Dynamic thread limit | ☐ | Legt fest, ob das Dynamische Thread-Limit verwendet werden soll |
| CPU cores (task processing) | 2 | Unterstützung für die Aufgabenverarbeitung auf verschiedenen Prozessorkernen (nur für Enterprise-Lizenz). Details siehe unten |
| CPU cores (result processing) | 4 | Mehrere Kerne werden nur bei Filterung, Ergebnis-Builder und Parse Custom Result verwendet (alle Lizenztypen) |
| Memory Saver | Best speed | Ermöglicht die Festlegung, wie viel Speicher der Parser verwenden darf (Best speed / Medium memory usage / Save max memory). Mehr dazu... |
CPU-Kerne (Aufgabenverarbeitung)
Unterstützung für die Verarbeitung von Aufgaben auf verschiedenen Prozessorkernen; diese Funktion ist nur für die Enterprise-Lizenz verfügbar.
Diese Option beschleunigt (um ein Vielfaches) die Verarbeitung mehrerer Aufgaben in der Warteschlange (Settings -> Max active tasks), beschleunigt jedoch nicht die Ausführung einer einzelnen Aufgabe.
Zudem wurde eine intelligente Verteilung der Aufgaben auf die Arbeitskerne basierend auf der CPU-Auslastung jedes Prozesses implementiert. Die Anzahl der verwendeten Prozessorkerne wird in den Einstellungen festgelegt, standardmäßig 2, maximal 32.
Wie bei den Threads ist es am besten, die Anzahl der Kerne experimentell zu ermitteln; sinnvoll sind Werte von 2-3 Kernen für Quad-Core-Prozessoren, 4-6 für Octa-Core-Prozessoren usw. Es ist zu beachten, dass bei einer großen Anzahl von Kernen und hoher Auslastung eine 100%ige Auslastung des Hauptsteuerungsprozesses (aparser/aparser.exe) auftreten kann, bei der eine weitere Erhöhung der Prozesse zur Aufgabenverarbeitung nur zu einer allgemeinen Verlangsamung oder instabilem Betrieb führt. Beachten Sie auch, dass jeder Prozess zur Aufgabenverarbeitung eine zusätzliche Last von bis zu 300% erzeugen kann (d. h. gleichzeitig 3 Kerne zu 100% auslasten), was mit der Multithread-Garbage-Collection in der JavaScript v8-Engine zusammenhängt.
Einstellungen der Threads
Die Arbeit von A-Parser basiert auf dem Prinzip der multithreaded Datenverarbeitung. Der Parser führt Aufgaben parallel in separaten Threads aus, deren Anzahl je nach Serverkonfiguration flexibel variiert werden kann.
Beschreibung der Thread-Funktionsweise
Lassen Sie uns verstehen, was Threads in der Praxis bedeuten. Angenommen, Sie müssen einen Bericht für drei Monate erstellen.
Option 1
Sie können den Bericht zuerst für den 1. Monat, dann für den 2. und danach für den 3. Monat erstellen. Dies ist ein Beispiel für Single-Thread-Arbeit. Die Aufgaben werden nacheinander gelöst.
Option 2
Drei Buchhalter einstellen, die jeweils einen Bericht für einen Monat erstellen. Nach Erhalt der Ergebnisse von allen dreien erstellen Sie dann einen Gesamtbericht. Dies ist ein Beispiel für Multithread-Arbeit. Die Aufgaben werden gleichzeitig gelöst.
Wie aus diesen Beispielen ersichtlich ist, ermöglicht Multithreading eine schnellere Erledigung der Aufgabe, erfordert aber gleichzeitig mehr Ressourcen (wir benötigen 3 Buchhalter statt einem). Ähnlich funktioniert Multithreading auch in A-Parser. Angenommen, Sie müssen Informationen von mehreren Links extrahieren:
- bei einem Thread wird die Anwendung jede Website nacheinander verarbeiten
- bei der Arbeit in mehreren Threads wird jeder Thread seinen eigenen Link verarbeiten und nach dessen Abschluss mit dem nächsten unbearbeiteten Link in der Liste fortfahren
Somit wird im zweiten Fall die gesamte Aufgabe deutlich schneller erledigt, erfordert jedoch mehr Serverressourcen, weshalb empfohlen wird, die Systemanforderungen einzuhalten
Thread-Einstellungen
Die Thread-Einstellung in A-Parser erfolgt separat für jede Aufgabe, abhängig von den für ihre Ausführung erforderlichen Parametern. Standardmäßig sind 2 Thread-Konfigurationen verfügbar: für 20 und 100 Threads, entsprechend für default und 100 Threads.
Um zu den Einstellungen der gewählten Konfiguration zu gelangen, müssen Sie auf das Stiftsymbol klicken, woraufhin sich deren Einstellungen öffnen.

Sie können auch über den Menüpunkt zu den Thread-Einstellungen gelangen: Settings -> Threads settings
Hier können wir:
- eine neue Konfiguration mit eigenen Einstellungen erstellen und unter eigenem Namen speichern (Schaltfläche Neu hinzufügen)
- Änderungen an einer bestehenden Konfiguration vornehmen, indem Sie diese aus der Dropdown-Liste auswählen (Schaltfläche Speichern)

Anzahl der Threads (Threads count)
Dieser Parameter legt die Anzahl der Threads fest, mit denen eine mit dieser Konfiguration gestartete Aufgabe arbeitet. Die Anzahl der Threads kann beliebig sein, aber Sie müssen die Kapazitäten Ihres Servers sowie die Einschränkungen Ihres Proxy-Tarifs berücksichtigen, falls eine solche Einschränkung vorgesehen ist. Zum Beispiel kann für unsere Proxys nicht mehr als der gewählte Tarif angegeben werden.
Es ist auch wichtig zu bedenken, dass die Gesamtzahl der Threads im Parser der Summe der laufenden Aufgaben und der aktivierten Proxy-Checker mit Proxy-Prüfung entspricht. Wenn zum Beispiel eine Aufgabe mit 20 Threads und zwei Aufgaben mit jeweils 100 Threads laufen, sowie ein Proxy-Checker arbeitet, bei dem die Proxy-Prüfung in 15 Threads aktiviert ist, verwendet der Parser insgesamt 20+100+100+15=235 Threads. Wenn der Proxy-Tarif auf 200 Threads ausgelegt ist, wird es viele fehlgeschlagene Anfragen geben. Um diese zu vermeiden, muss die Anzahl der verwendeten Threads gesenkt werden. Zum Beispiel die Proxy-Prüfung deaktivieren (wenn sie nicht benötigt wird, spart das 15 Threads) und die Anzahl der Threads in einer der Aufgaben um weitere 20 Threads senken. Somit muss für eine der laufenden Aufgaben eine Konfiguration mit 80 Threads erstellt werden, die anderen bleiben wie sie sind
Proxy-Checker (Proxy Checkers)
Dieser Parameter ermöglicht die Auswahl eines Proxy-Checkers mit bestimmten Einstellungen. Hier kann der Parameter All gewählt werden, was die Verwendung aller aktiven Proxy-Checker bedeutet, oder nur diejenigen, die in der Aufgabe verwendet werden sollen (Mehrfachauswahl möglich)
Diese Einstellung ermöglicht es, die Aufgabe nur mit den benötigten Proxy-Checkern zu starten. Der Prozess der Proxy-Checker-Einstellung wird hier beschrieben
Maximale Threads pro Proxy (Max threads per proxy)
Hier wird die maximale Anzahl von Threads festgelegt, in denen derselbe Proxy gleichzeitig verwendet wird. Ermöglicht das Festlegen verschiedener Parameter, zum Beispiel den Betrieb 1 Thread = 1 Proxy.
Standardmäßig ist dieser Parameter auf 0 gesetzt, was diese Funktion deaktiviert. In den meisten Fällen ist dies ausreichend. Wenn jedoch die Last auf jeden Proxy begrenzt werden soll, ist es sinnvoll, den Wert zu ändern
Globaler Proxy-Ban (Global proxy ban)
Alle mit dieser Option gestarteten Aufgaben teilen sich eine gemeinsame Proxy-Ban-Datenbank. Die Besonderheit dieses Parameters ist, dass die Liste der gesperrten Proxys für jeden Parser für alle laufenden Aufgaben gemeinsam gilt.
Zum Beispiel wird ein in
SE::Google in Aufgabe 1 gesperrter Proxy auch für
SE::Google in Aufgabe 2 gesperrt sein, kann aber gleichzeitig problemlos in
SE::Yandex in beiden Aufgaben funktionieren
Maximale Verbindungen pro Host (Max connections per host)
Dieser Parameter gibt die maximale Anzahl von Verbindungen pro Host an und dient dazu, die Last auf die Website beim Extrahieren von Informationen zu verringern. Im Wesentlichen ermöglicht die Angabe dieses Parameters die Kontrolle über die Anzahl der gleichzeitigen Anfragen an jede spezifische Domain. Die Aktivierung dieses Parameters gilt für die Aufgabe; wenn mehrere Aufgaben gleichzeitig mit derselben Thread-Konfiguration gestartet werden, wird das Limit für alle Aufgaben berechnet.
Standardmäßig hat dieser Parameter den Wert 0, d.h. er ist deaktiviert.
Proxy-Wiederverwendung zwischen Versuchen (Reuse proxy between retries)
Diese Einstellung deaktiviert die Prüfung auf Proxy-Eindeutigkeit für jeden Versuch, und auch der Proxy-Ban wird nicht funktionieren. Dies bedeutet wiederum die Möglichkeit, 1 Proxy für alle Versuche zu verwenden.
Dieser Parameter wird empfohlen, wenn zum Beispiel geplant ist, 1 Proxy zu verwenden, bei dem sich bei jeder Verbindung die Ausgangs-IP ändert.
Proxy-Strategie (Proxy strategy)
Ermöglicht die Steuerung der Proxy-Auswahlstrategie bei Verwendung von Sitzungen: den Proxy einer erfolgreichen Anfrage für die nächste Anfrage beibehalten oder immer einen zufälligen Proxy verwenden.
Empfehlungen
In diesem Artikel wurden alle Einstellungen behandelt, die die Steuerung von Threads ermöglichen. Es ist anzumerken, dass bei der Konfiguration der Threads nicht unbedingt alle im Artikel genannten Parameter festgelegt werden müssen; es reicht aus, nur diejenigen festzulegen, die ein korrektes Ergebnis gewährleisten. Normalerweise muss nur der Threads count geändert werden, die restlichen Einstellungen können auf den Standardwerten belassen werden.
Parser-Einstellungen
Jeder Parser verfügt über zahlreiche Einstellungen und ermöglicht das Speichern verschiedener Einstellungssätze in Presets. Das Preset-System erlaubt es, denselben Parser je nach Situation mit unterschiedlichen Einstellungen zu verwenden, wie am Beispiel des Parsers
SE::Google zu sehen ist:
Preset 1: "Maximale Anzahl von Links extrahieren"
- Seitenanzahl (Pages count):
10 - Links pro Seite (Links per page):
100
Auf diese Weise sammelt der Parser die maximale Anzahl von Links, indem er alle Seiten der Suchergebnisse durchgeht
Preset 2: "Wettbewerb pro Abfrage extrahieren"
- Seitenanzahl (Pages count):
1 - Links pro Seite (Links per page):
10 - Ergebnisformat (Results format):
$query: $totalcount\n
In diesem Fall erhalten wir die Anzahl der Suchergebnisse für die Abfrage (Abfragewettbewerb), und für eine höhere Geschwindigkeit reicht es uns aus, nur die erste Seite mit einer minimalen Anzahl von Links zu erfassen
Erstellung von Presets

Die Erstellung eines Presets beginnt mit der Auswahl des Parsers/der Parser und der Festlegung des gewünschten Ergebnisses.
Als Nächstes muss verstanden werden, was die Eingabedaten für den gewählten Parser sein werden. Im obigen Screenshot ist der Parser
SE::Google ausgewählt; seine Eingabedaten sind beliebige Zeichenfolgen, so als ob Sie etwas im Browser suchen würden. Sie können eine Abfragedatei auswählen oder Abfragen in das Textfeld eingeben.
Nun müssen die Einstellungen für den Parser überschrieben (Optionen ausgewählt) und die Deduplizierung der Ergebnisse hinzugefügt werden. Sie können den Abfrage-Builder verwenden, wenn Abfragen verarbeitet werden müssen, oder den Ergebnis-Builder, wenn Ergebnisse in irgendeiner Weise verarbeitet werden sollen.
Danach sollte die Bearbeitung des Dateinamens der Ergebnisse beachtet und dieser bei Bedarf nach eigenem Ermessen geändert werden.
Der letzte Punkt ist die Auswahl zusätzlicher Optionen, insbesondere die Option Enable log (Log führen). Sehr nützlich, wenn Sie die Ursache eines Fehlers bei der Datenerfassung erfahren möchten.
Nach all dem muss das Preset gespeichert und zur Aufgabenwarteschlange hinzugefügt werden.
Überschreiben von Einstellungen
Override preset - schnelles Überschreiben von Einstellungen für den Parser; diese Option kann direkt im Task-Editor hinzugefügt werden. Mit einem Klick können mehrere Parameter hinzugefügt werden. In der Einstellungsliste sind Standardwerte angegeben, und wenn eine Option fett markiert ist, bedeutet dies, dass sie bereits im Preset überschrieben wurde

In diesem Beispiel wurden zwei Optionen überschrieben: Pages count (Seitenanzahl) wurde auf 5 gesetzt und Links per page (Links pro Seite) wurde der Wert 100 zugewiesen.
In einer Aufgabe kann eine unbegrenzte Anzahl von Override preset-Optionen verwendet werden, aber bei vielen Änderungen ist es bequemer, ein neues Preset zu erstellen und alle Änderungen darin zu speichern.
Zudem lassen sich Überschreibungen leicht mit der Funktion Save overrides to preset (Überschreibungen speichern) sichern. Sie werden als separates Preset für den gewählten Parser gespeichert.

Danach reicht es in Zukunft aus, dieses gespeicherte Preset einfach aus der Liste auszuwählen und zu verwenden.

Allgemeine Einstellungen für alle Parser
Jeder Parser hat seinen eigenen Satz an Einstellungen. Informationen zu den Einstellungen jedes Parsers finden Sie im entsprechenden Abschnitt
In dieser Tabelle haben wir die allgemeinen Einstellungen für alle Parser zusammengestellt
| Parametername | Standardwert | Beschreibung |
|---|---|---|
| Request retries | 10 | Anzahl der Versuche für jede Anfrage; wenn die Anfrage nicht innerhalb der angegebenen Anzahl an Versuchen erfolgreich ist, gilt sie als fehlgeschlagen und wird übersprungen |
| Use proxy | ☑ | Legt fest, ob Proxys verwendet werden sollen |
| Query format | $query | Anfrageformat |
| Result format | Jeder Parser hat seinen eigenen Wert | Format der Ergebnisausgabe |
| Proxy ban time | Jeder Parser hat seinen eigenen Wert | Dauer des Proxy-Bans in Sekunden |
| Request timeout | 60 | Maximale Wartezeit für eine Anfrage in Sekunden |
| Request delay | 0 | Verzögerung zwischen Anfragen in Sekunden; es kann ein Zufallswert in einem Bereich angegeben werden, z. B. 10,30 - Verzögerung von 10 bis 30 Sekunden |
| Proxy Checker | All | Proxys von welchen Checkern verwendet werden sollen (Wahl zwischen allen oder Auflistung spezifischer) |
Allgemein für alle Parser, die über das HTTP-Protokoll arbeiten
| Parametername | Standardwert | Beschreibung |
|---|---|---|
| Max body size | Jeder Parser hat seinen eigenen Wert | Maximale Größe der Ergebnisseite in Bytes |
| Use gzip | ☑ | Legt fest, ob Komprimierung für den übertragenen Traffic verwendet werden soll |
| Extra query string | Ermöglicht die Angabe zusätzlicher Parameter im Query-String |
Die Standardeinstellungen für jeden Parser können variieren. Sie sind im Preset default in den Einstellungen jedes Parsers gespeichert.
Proxy-Checker-Einstellungen
Mehr über die Einstellung von Proxy-Checkern
Zusätzliche Einstellungen

- Zeilenumbruch ermöglicht die Wahl zwischen Unix- und Windows-Varianten der Zeilenenden beim Speichern der Ergebnisse in eine Datei
- Zahlenformat - legt fest, wie Zahlen in der Benutzeroberfläche von A-Parser angezeigt werden
- Vorlagen-Makros