Salta ai contenuti

Sistema e automazione

Gestisce pool di processi di lavoro concorrenti per elaborazione in blocco. Vedi Processi di lavoro delle code per i dettagli completi.

MetodoFirmaAsyncDescrizione
start(options)NoAvvia pool di processi di lavoro
stop(queueName?)NoFerma processi di lavoro (tutti o per coda)
pause()NoMette in pausa tutte le operazioni di estrazione
resume()NoRiprende le operazioni di estrazione
status() → WorkerPoolStatus[]NoOttiene lo stato di tutti i pool

WorkerStartOptions:

{
clearTabs?: boolean
layout?: "horizontal" | "vertical" | "quad"
workers: WorkerPoolOptions[]
}

WorkerPoolOptions:

{
queue: string
script: string
concurrency?: number
throttle?: { requestsPerMinute?: number }
dequeue?: string
requiresWorkflowEnvelope?: boolean
}

Imposta requiresWorkflowEnvelope: true per code appartenenti a un flusso di lavoro che devono elaborare solo elementi collegati ai metadati di esecuzione/elemento del registro di tracciabilità dei flussi di lavoro.


Disponibile solo dentro script dei processi di lavoro.

MetodoFirmaAsyncDescrizione
getContext() → WorkerContextNoOttiene l’elemento corrente, l’ID scheda e il nome della coda

WorkerContext:

{
item: QueueItem
tabId: string
queueName: string
}

Accede al traffico HTTP catturato. La cattura deve essere abilitata (lo è per impostazione predefinita).

MetodoFirmaAsyncDescrizione
search(query?, options?) → TrafficEntryInfo[]NoCerca nel traffico catturato
getById(id) → TrafficEntryInfo | nullNoOttiene una voce di traffico specifica
getResponseBody(id) → string | nullNoOttiene il contenuto della risposta
getRequestBody(id) → string | nullNoOttiene il contenuto della richiesta
count() → numberNoConta le voci catturate
clear()NoCancella tutto il traffico catturato
enable()NoAbilita la cattura del traffico
disable()NoDisabilita la cattura del traffico
isEnabled() → booleanNoControlla se la cattura è abilitata
waitForRequest(urlPattern, options?) → Promise<TrafficEntryInfo>Attende una richiesta corrispondente

NetworkSearchOptions:

{
method?: string // "GET", "POST", ecc.
statusMin?: number
statusMax?: number
contentType?: string
tabId?: string
limit?: number // predefinito: 100
offset?: number // predefinito: 0
sort?: string // timestamp, url, status, size, duration, method
order?: string // "asc" o "desc" (predefinito)
}

WaitForRequestOptions:

{
method?: string
timeout?: number // predefinito: 30000ms
}
async function main() {
await g.nav.navigateToUrl("https://api.example.com/data");
// Attendi la risposta API
const entry = await g.network.waitForRequest("api.example.com/data");
const body = g.network.getResponseBody(entry.id);
const data = JSON.parse(body);
g.log("Ricevuti " + data.items.length + " elementi");
}

MetodoFirmaAsyncDescrizione
search(query?, options?) → NavigationEntryInfo[]NoCerca nella cronologia di navigazione
count() → numberNoConta le voci di cronologia
clear()NoCancella tutta la cronologia

HistorySearchOptions:

{
tabId?: string
limit?: number // predefinito: 100
offset?: number // predefinito: 0
sort?: string // "timestamp" (predefinito), "url", "status"
order?: string // "asc" o "desc" (predefinito)
}

Controllo automatico robots.txt per automazione scriptata. Abilitato per impostazione predefinita.

MetodoFirmaAsyncDescrizione
isAllowed(url) → Promise<boolean>Controlla se un URL è consentito da robots.txt
getCrawlDelay(url) → Promise<number | null>Ottiene il crawl-delay per un dominio
disable()NoDisabilita il controllo robots.txt per questo script
enable()NoRiabilita il controllo robots.txt

Ispeziona e cambia flussi di lavoro dentro uno spazio di lavoro.

MetodoFirmaAsyncDescrizione
getActive() → WorkflowInfo | nullNoOttiene nome e percorso del flusso di lavoro attivo
list() → WorkflowListItem[]NoElenca tutti i flussi di lavoro nello spazio di lavoro
switch(name)NoCambia flusso di lavoro (fire-and-forget, avviene sul thread UI)

WorkflowInfo:

{
name: string // nome del flusso di lavoro
path: string // percorso assoluto della cartella del flusso di lavoro
}

WorkflowListItem:

{
name: string
enabled: boolean
hasEvents: boolean // ha trigger events.json
hasWorkers: boolean // ha configurazione workers.json
hasTools: boolean // ha cartella tools/
hasViews: boolean // ha cartella views/
scriptCount: number // numero di file script
}

Disponibile dentro script eseguiti da generazione di eventi. Restituisce metadati sul motivo dell’invocazione dello script.

MetodoFirmaAsyncDescrizione
getContext() → TriggerContextNoOttiene i dati dell’evento per l’esecuzione corrente del generatore di eventi

TriggerContext:

{
event: string // "url-match", "page-loaded", "tab-created", "tab-closed",
// "tab-activated", "external-queue", "dom-mutation"
tabId?: string // scheda del browser associata all'evento
url?: string // URL della pagina al momento dell'evento
timestamp: string // ISO 8601
pattern?: string // pattern URL corrispondente (solo url-match)
// campi dom-mutation:
oldValue?: string // valore precedente
newValue?: string // nuovo valore
attribute?: string // nome dell'attributo cambiato (null per cambiamenti testo)
mutationType?: string // "characterData", "attributes" o "childList"
selector?: string // selettore CSS corrispondente
changes?: object[] // array di mutazioni (solo strategia buffer)
}
async function main() {
const ctx = g.trigger.getContext();
if (ctx.event === "url-match") {
g.log("Corrispondenza " + ctx.pattern + " su " + ctx.url);
}
if (ctx.event === "dom-mutation") {
g.log(ctx.selector + " cambiato: " + ctx.oldValue + "" + ctx.newValue);
}
}