Impostazioni
A-Parser contiene i seguenti gruppi di impostazioni:
- Global Settings - impostazioni principali del programma: lingua, password, parametri di aggiornamento, numero di attività attive
- Config Presets - impostazioni dei thread e dei metodi di deduplicazione per le attività
- Parser Presets - possibilità di configurare ogni singolo scraper
- Impostazioni verifica proxy - numero di thread e tutte le impostazioni per il proxychecker
- Advanced Settings - impostazioni opzionali per utenti avanzati
- Task presets - salvataggio delle attività per un utilizzo successivo
Tutte le impostazioni (tranne quelle generali e aggiuntive) vengono salvate nei cosiddetti preset - set di impostazioni pre-salvate, ad esempio:
- Diversi preset di impostazioni per lo scraper
SE::Google - uno per lo scraping di link con una profondità massima di 10 pagine, l'altro per valutare la concorrenza per una query, con profondità di scraping di 1 pagina - Diversi preset di impostazioni del proxychecker - separati per proxy HTTP e SOCKS
Per tutte le impostazioni esiste un preset predefinito (default), che non può essere modificato; tutte le modifiche devono essere salvate in preset con nuovi nomi.
Impostazioni generali

| Nome parametro | Valore predefinito | Descrizione |
|---|---|---|
| Password | Nessuna password | Imposta una password per l'accesso ad A-Parser |
| Language | English | Lingua dell'interfaccia |
| News & Tips | English | Lingua delle novità e dei suggerimenti |
| Enable tips | ☑ | Determina se visualizzare i suggerimenti |
| Check updates | ☑ | Determina se visualizzare le informazioni sulla disponibilità di un nuovo aggiornamento nella Barra di stato |
| Save window size | ☐ | Determina se salvare le dimensioni della finestra |
| Updates channel | Stable | Scelta del canale di aggiornamento (Stabile, Beta, Alfa) |
| Tasks per page | 5 | Numero di attività per pagina nella Coda attività |
| Max active tasks | 1 | Numero massimo di attività attive |
| Total threads limit | 10000 | Limite totale di thread in A-Parser. L'attività non si avvierà se il limite totale di thread è inferiore al numero di thread nell'attività |
| Dynamic thread limit | ☐ | Determina se utilizzare il Limite dinamico thread |
| CPU cores (task processing) | 2 | Supporto per l'elaborazione delle attività su diversi core del processore (solo per licenza Enterprise). Descritto in dettaglio di seguito |
| CPU cores (result processing) | 4 | Più core vengono utilizzati solo durante il filtraggio, il Costruttore di risultati, Parse custom result (tutti i tipi di licenza) |
| Memory Saver | Best speed | Consente di determinare quanta memoria può utilizzare lo scraper (Best speed / Medium memory usage / Save max memory). Dettagli... |
Core CPU (elaborazione attività)
Supporto per l'elaborazione delle attività su diversi core del processore, questa funzionalità è disponibile solo per la licenza Enterprise
Questa opzione accelera (molte volte) l'elaborazione di più attività nella coda (Settings -> Max active tasks), ma non accelera in alcun modo l'esecuzione di una singola attività
È stata inoltre implementata una distribuzione intelligente delle attività sui core di lavoro basata sul carico della CPU di ogni processo Il numero di core del processore utilizzati viene impostato nelle impostazioni, il valore predefinito è 2, il massimo è 32
Come nel caso dei thread, è meglio scegliere il numero di core in modo sperimentale; valori ragionevoli sarebbero 2-3 core per processori a 4 core, 4-6 per quelli a otto core, ecc. Vale la pena considerare che con un gran numero di core e un loro elevato carico, potrebbe verificarsi un carico del 100% del processo di controllo principale (aparser/aparser.exe), per cui un ulteriore aumento dei processi per l'elaborazione delle attività causerebbe solo un rallentamento generale o un funzionamento instabile. Vale anche la pena considerare che ogni processo di elaborazione delle attività può creare un carico aggiuntivo fino al 300% (ovvero caricare al 100% contemporaneamente 3 core), questa caratteristica è legata all'elaborazione multithreading della garbage collection nel motore JavaScript v8
Impostazioni thread
Il funzionamento di A-Parser si basa sul principio dell' elaborazione dati multithreading. Lo scraper esegue le attività in parallelo in thread separati, il cui numero può variare in modo flessibile a seconda della configurazione del server.
Descrizione del funzionamento dei thread
Vediamo cosa sono i thread nella pratica. Supponiamo che tu debba redigere un rapporto per tre mesi.
Opzione 1
Puoi redigere il rapporto prima per il 1° mese, poi per il 2° e infine per il 3°. Questo è un esempio di lavoro a thread singolo. Le attività vengono risolte una alla volta.
Opzione 2
Assumere tre contabili che redigeranno i rapporti, uno per ogni mese. E poi, una volta ricevuti i risultati da tutti e tre, creare un rapporto generale. Questo è un esempio di lavoro multithreading. Le attività vengono risolte simultaneamente.
Come si vede da questi esempi, il lavoro multithreading permette di completare l'attività più velocemente, ma allo stesso tempo richiede più risorse (abbiamo bisogno di 3 contabili invece di 1). Il multithreading in A-Parser funziona in modo analogo. Supponiamo che tu debba fare lo scraping di informazioni da diversi link:
- con un solo thread l'applicazione eseguirà lo scraping di ogni sito uno dopo l'altro
- lavorando in più thread, ognuno elaborerà il proprio link e, al termine, passerà al successivo non elaborato nell'elenco
In questo modo, nella seconda opzione, l'intera attività sarà completata molto più velocemente, ma richiederà più risorse del server, pertanto si raccomanda di rispettare i Requisiti di sistema
Configurazione dei thread
La configurazione dei thread in A-Parser viene eseguita separatamente per ogni attività, a seconda dei parametri necessari per la sua esecuzione. Per impostazione predefinita sono disponibili 2 configurazioni thread: una da 20 e una da 100 thread, per default e 100 Threads rispettivamente.
Per accedere alle impostazioni della configurazione selezionata, è necessario cliccare sull'icona della matita , dopodiché si apriranno le sue impostazioni.

È inoltre possibile passare alle impostazioni dei thread tramite la voce di menu: Settings -> Config Presets
Qui possiamo:
- creare una nuova configurazione con le proprie impostazioni e salvarla con un proprio nome (pulsante Aggiungi nuovo)
- apportare modifiche a una configurazione esistente selezionandola dall'elenco a discesa (pulsante Salva)

Numero di thread (Threads count)
Questo parametro imposta il numero di thread con cui lavorerà l'attività avviata con questa configurazione. Il numero di thread può essere qualsiasi, ma è necessario considerare le capacità del proprio server, nonché il limite del piano proxy, se previsto. Ad esempio, per i nostri proxy è possibile indicare non più del piano selezionato.
È inoltre importante ricordare che il numero totale di thread nello scraper è pari alla somma delle attività in esecuzione e dei proxy checker attivi con la verifica dei proxy. Ad esempio, se è avviata un'attività a 20 thread e due attività da 100 thread ciascuna, ed è attivo un proxy checker in cui è abilitata la verifica dei proxy a 15 thread, in totale lo scraper utilizzerà 20+100+100+15=235 thread. In questo caso, se il piano proxy è previsto per 200 thread, ci saranno molte richieste fallite. Per evitarle, è necessario ridurre il numero di thread utilizzati. Ad esempio, disattivare la verifica dei proxy (se non è necessaria, si risparmieranno 15 thread) e ridurre il numero di thread in una delle attività di altri 20 thread. In questo modo, per una delle attività in esecuzione è necessario creare una configurazione a 80 thread, lasciando le altre come sono
Proxy checker (Proxy Checkers)
Questo parametro consente di scegliere un proxy checker con determinate impostazioni. Qui è possibile selezionare il parametro All, che significa l'utilizzo di tutti i proxy checker attivi, oppure solo quelli che devono essere utilizzati nell'attività (è possibile selezionare più voci)
Questa impostazione permette di avviare l'attività solo con i proxy checker necessari. Il processo di configurazione del proxy checker è esaminato qui
Massimo thread per proxy (Max threads per proxy)
Qui si imposta il numero massimo di thread su cui verrà utilizzato contemporaneamente lo stesso proxy. Permette di impostare diversi parametri, ad esempio il funzionamento 1 thread = 1 proxy.
Per impostazione predefinita, questo parametro è uguale a 0, il che disabilita questa funzione. Nella maggior parte dei casi questo è sufficiente. Ma se è necessario limitare il carico su ogni proxy, allora ha senso cambiare il valore
Ban globale dei proxy (Global proxy ban)
Tutte le attività avviate con questa opzione condividono un database comune di ban dei proxy. La particolarità di questo parametro è che l'elenco dei proxy bannati per ogni scraper è comune a tutte le attività in esecuzione.
Ad esempio, un proxy bannato in
SE::Google nell'attività 1 sarà bannato anche per
SE::Google nell'attività 2, ma potrà comunque funzionare liberamente in
SE::Yandex in entrambe le attività
Massimo connessioni per host (Max connections per host)
Questo parametro indica il numero massimo di connessioni per host, destinato a ridurre il carico sul sito durante lo scraping di informazioni da esso. In sostanza, l'indicazione di questo parametro permette di controllare il numero di richieste in un dato momento per ogni specifico dominio. L'abilitazione di questo parametro si estende all'attività; se si avviano più attività contemporaneamente con la stessa configurazione di thread, il limite sarà calcolato per tutte le attività.
Per impostazione predefinita, questo parametro ha valore 0, ovvero è disattivato.
Riutilizzo del proxy tra i tentativi (Reuse proxy between retries)
Questa impostazione disabilita il controllo dell'unicità del proxy per ogni tentativo e non funzionerà il ban del proxy. Ciò significa a sua volta la possibilità di utilizzare 1 proxy per tutti i tentativi.
Si raccomanda di abilitare questo parametro, ad esempio, nei casi in cui si pianifica di utilizzare 1 proxy il cui IP di uscita cambia ad ogni connessione.
Strategia di utilizzo dei proxy (Proxy strategy)
Permette di gestire la strategia di scelta del proxy quando si utilizzano le sessioni: mantenere il proxy di una richiesta andata a buon fine per la richiesta successiva o utilizzare sempre un proxy casuale.
Raccomandazioni
In questo articolo sono state esaminate tutte le impostazioni che permettono di gestire i thread. Vale la pena notare che nella configurazione dei thread non è obbligatorio impostare tutti i parametri indicati nell'articolo, è sufficiente impostare solo quelli che garantiscono l'ottenimento di un risultato corretto. Di solito è necessario cambiare solo Threads count, le altre impostazioni possono essere lasciate ai valori predefiniti.
Impostazioni degli scraper
Ogni scraper ha numerose impostazioni e permette di salvare diversi set di impostazioni in preset. Il sistema dei preset permette di utilizzare lo stesso scraper con diverse impostazioni a seconda della situazione, analizziamo l'esempio dello scraper
SE::Google:
Preset 1: "Scraping del numero massimo di link"
- Numero di pagine (Pages count):
10
In questo modo lo scraper raccoglierà il numero massimo di link, navigando attraverso tutte le pagine dei risultati di ricerca
Preset 2: "Scraping della concorrenza per query"
- Numero di pagine (Pages count):
1 - Formato del risultato (Results format):
$query: $totalcount\n
In questo caso otteniamo il numero di risultati della ricerca per la query (concorrenza della query) e per una maggiore velocità ci basta fare lo scraping solo della prima pagina
Creazione dei preset

La creazione di un preset inizia con la scelta dello scraper/degli scraper e la definizione del risultato che si desidera ottenere.
Successivamente bisogna capire quali saranno i dati di input per lo scraper selezionato; nello screenshot sopra è selezionato lo scraper
SE::Google, i cui dati di input sono stringhe qualsiasi come se si stesse cercando qualcosa nel browser. È possibile scegliere un file di query o inserire le query in un campo di testo.
Ora è necessario ridefinire le impostazioni (scegliere le opzioni) per lo scraper, aggiungere la deduplicazione. È possibile utilizzare il costruttore di query se è necessario elaborare le query, oppure utilizzare il costruttore di risultati se è necessario elaborare i risultati in qualche modo.
Successivamente bisogna prestare attenzione alla modifica del nome del file dei risultati e, se necessario, cambiarlo a propria discrezione.
L'ultimo punto è la scelta delle opzioni aggiuntive, in particolare l'opzione Do log (Mantieni log). Molto utile se si desidera conoscere la causa di un errore di scraping.
Dopo tutto questo, è necessario salvare il preset e aggiungerlo alla coda delle attività.
Ridefinizione delle impostazioni
Override preset - ridefinizione rapida delle impostazioni per lo scraper, questa opzione può essere aggiunta direttamente nell' Editor delle attività. Con un clic è possibile aggiungere diversi parametri. Nell'elenco delle impostazioni sono indicati i valori predefiniti, e se un'opzione è evidenziata in grassetto significa che è già stata ridefinita nel preset

In questo esempio è stata sovrascritta l'opzione Pages count (Numero di pagine), impostandola a 5.
In un'attività è possibile utilizzare un numero illimitato di opzioni Override preset, ma se le modifiche sono molte, è più comodo creare un nuovo preset e salvarvi tutte le modifiche.
È inoltre possibile salvare facilmente le ridefinizioni con la funzione Save overrides to preset (Salva ridefinizioni). Saranno salvate come un preset separato per lo scraper selezionato.

Dopodiché, in futuro basterà semplicemente selezionare questo preset salvato dall'elenco e utilizzarlo.

Impostazioni comuni per tutti gli scraper
Ogni scraper ha il proprio set di impostazioni; puoi trovare informazioni sulle impostazioni di ogni scraper nella sezione corrispondente
In questa tabella abbiamo presentato le impostazioni comuni a tutti gli scraper
| Nome parametro | Valore predefinito | Descrizione |
|---|---|---|
| Request retries | 10 | Numero di tentativi per ogni richiesta; se la richiesta non può essere eseguita entro il numero di tentativi indicato, viene considerata fallita e saltata |
| Use proxy | ☑ | Determina se utilizzare i proxy |
| Query format | $query | Formato della query |
| Result format | Ogni scraper ha il suo valore | Formato di output del risultato |
| Proxy ban time | Ogni scraper ha il suo valore | Tempo di ban del proxy in secondi |
| Request timeout | 60 | Tempo massimo di attesa della richiesta in secondi |
| Request delay | 0 | Ritardo tra le richieste in secondi; è possibile impostare un valore casuale in un intervallo, ad esempio 10,30 - ritardo da 10 a 30 secondi |
| Proxy Checker | All | Quali proxy dei checker devono essere utilizzati (scelta tra tutti o elenco di specifici) |
Comuni a tutti gli scraper che lavorano tramite protocollo HTTP
| Nome parametro | Valore predefinito | Descrizione |
|---|---|---|
| Max body size | Ogni scraper ha il suo valore | Dimensione massima della pagina dei risultati in byte |
| Use gzip | ☑ | Determina se utilizzare la compressione del traffico trasmesso |
| Extra query string | Consente di specificare parametri aggiuntivi nella stringa di query |
Le impostazioni predefinite per ogni scraper possono variare. Sono memorizzate nel preset default nelle impostazioni di ogni scraper.
Impostazioni dei proxy checker
Dettagli sulla Configurazione dei proxychecker
Impostazioni aggiuntive

- L'interruzione di riga permette di scegliere tra la variante Unix e Windows per la fine delle righe durante il salvataggio dei risultati in un file
- Formato numeri - imposta come visualizzare i numeri nell'interfaccia di A-Parser
- Macro dei modelli