Konfiguration via gränssnittet
A-Parser tillåter att konfigurationen definieras i en deklarativ stil, samt att gränssnittet används för att skapa och redigera förinställningar utan att behöva modifiera scrapers källkod
static defaultConf
static defaultConf = {
version: '0.0.1',
results: {
flat: [
['title', 'Title'],
],
arrays: {
}
},
results_format: "Title: $title\n",
exampleKey: 'value',
};
Standardkonfiguration för en scraper, konfigurationen kommer att vara tillgänglig i klassobjektet via egenskapen this.conf, följande fält är obligatoriska:
results- beskriver i deklarativ stil de resultat som denna scraper kan returneraresults_format- anger standardformatet för resultatet
Alla andra fält är valfria, det finns följande lista över parametrar som påverkar scraperns arbete:
| Parameternamn | Typ | Beskrivning (standardvärde) |
|---|---|---|
| timeout | number | Maximal väntetid för begäran i sekunder (60) |
| useproxy | boolean / 0 / 1 | Avgör om proxy ska användas (1) |
| max_size | number | Maximal storlek på resultatfilen (1 * 1024 * 1024) |
| proxyretries | number | Antal försök för varje begäran; om begäran inte kan utföras inom det angivna antalet försök anses den misslyckad och hoppas över (10) |
| requestdelay | number / string | Fördröjning mellan förfrågningar i sekunder (0). Det går även att ange ett slumpmässigt värde i ett intervall, till exempel 10,30 - fördröjning från 10 till 30 sekunder |
| proxybannedcleanup | number | Tid för proxy-ban i sekunder (600) |
| pagecount | number | Antal sidor för dataskrapning (1) |
| parsecodes | { [code: string]: any } | Värde för svarskoder för förfrågningar som ska anses vara framgångsrika (any) |
| queryformat | string | Frågeformat ($query) |
Du kan också definiera godtyckliga fält som kan redigeras via gränssnittet
static editableConf
Denna inställning definierar en lista över konfigurationsfält som kan redigeras via gränssnittet. Det finns följande typer av fält i gränssnittet:
textfield- fält för godtycklig inmatning av numeriska värden och strängvärdencheckbox- flagga med tillstånden på/avcombobox- rullgardinsmeny med val av ett eller flera värden- val av flera värden ställs in via alternativet
{ multiSelect: 1 }
editableConf är en array där varje element beskriver ett motsvarande konfigurationsfält:
static editableConf: [
...[
fieldName: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
Exempel på deklaration av redigerbara fält:
static get editableConf() {
let editableConf: typeof BaseParser.editableConf = [
['device',
['combobox', 'Device',
['desktop', 'Modern desktop computer (Windows 10, Chrome 84)'],
['mobile', 'Mobile device (iPhone X, iOS 11)']
]
],
['pagecount', ['combobox', 'Pages count']],
['linksperpage',
['combobox', 'Links per page',
[10, '10'],
[20, '20'],
[30, '30'],
[50, '50']
]
],
];
for (let page = 1; page <= 25; page++)
editableConf[1][1].push([page, page]);
return editableConf;
}

Observera att i detta exempel används en getter-metod för editableConf, vilket möjliggör ytterligare bearbetning, till exempel generering av en sidlista. För enklare fall kan du definiera statiska egenskaper för klassen, på samma sätt som för defaultConf
static parserOptions
parserOptions är ett alternativt sätt att definiera inställningar, listan över alternativ visas som ytterligare punkter i scraperns kontextmeny
Deklaration av alternativ fungerar på samma sätt som editableConf:
static parserOptions: [
...[
fieldName: string,
menuTitle: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
Exempel på deklaration av ytterligare fält:
static parserOptions: typeof BaseParser.parserOptions = [
['parseAll', 'Parse all results',
['checkbox', 'Parse all results']
],
['parseLevel', 'Parse related to level',
['combobox', 'Parse Related to level', [1, 1], [2, 2], [3, 3]]
],
];
