Passer au contenu principal

Configuration via l'interface

A-Parser permet de définir la configuration dans un style déclaratif, ainsi que d'utiliser l'interface pour créer et éditer des préréglages sans avoir besoin de modifier le code source des scrapers.

static defaultConf

static defaultConf = {
version: '0.0.1',
results: {
flat: [
['title', 'Title'],
],
arrays: {
}
},
results_format: "Title: $title\n",
exampleKey: 'value',
};

Configuration du scraper par défaut, le config sera disponible dans l'objet de la classe via la propriété this.conf, les champs suivants sont obligatoires :

  • results - décrit dans un style déclaratif les résultats que ce scraper peut retourner

  • results_format - définit le format de résultat par défaut

Tous les autres champs sont optionnels, il existe la liste suivante de paramètres qui affectent le fonctionnement du scraper :

Nom du paramètreTypeDescription (valeur par défaut)
timeoutnumberTemps d'attente maximum de la requête en secondes (60)
useproxyboolean / 0 / 1Détermine s'il faut utiliser un proxy (1)
max_sizenumberTaille maximale du fichier de résultat (1 * 1024 * 1024)
proxyretriesnumberNombre de tentatives pour chaque requête, si la requête ne peut pas être effectuée dans le nombre de tentatives indiqué, elle est considérée comme échouée et ignorée (10)
requestdelaynumber / stringDélai entre les requêtes en secondes (0). Il est également possible de définir une valeur aléatoire dans un intervalle, par exemple 10,30 - délai de 10 à 30 secondes
proxybannedcleanupnumberTemps de bannissement du proxy en secondes (600)
pagecountnumberNombre de pages à collecter (1)
parsecodes{ [code: string]: any }Valeur des codes de réponse pour les requêtes qui seront considérées comme réussies (any)
queryformatstringFormat de la requête ($query)
note

Vous pouvez également définir des champs personnalisés qui peuvent être modifiés via l'interface

static editableConf

Ce paramètre définit la liste des champs de configuration qui peuvent être modifiés via l'interface. Il existe les types de champs suivants dans l'interface :

  • textfield - champ pour la saisie libre de valeurs numériques et de chaînes de caractères
  • checkbox - case à cocher avec les états activé/désactivé
  • combobox - liste déroulante avec choix d'une ou plusieurs valeurs
  • la sélection de plusieurs valeurs est définie via l'option { multiSelect: 1 }

editableConf est un tableau dont chaque élément décrit le champ de configuration correspondant :

static editableConf: [
...[
fieldName: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];

Exemple de déclaration de champs éditables :

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;
}
Capture d'écran de l'interface avec les paramètres ci-dessus
note

Veuillez noter que dans cet exemple, une méthode getter est utilisée pour editableConf, ce qui permet d'effectuer un traitement supplémentaire, par exemple la génération d'une liste de pages. Pour des cas plus simples, vous pouvez définir des propriétés statiques de classe, de la même manière que pour defaultConf

static parserOptions

parserOptions est une alternative pour définir les paramètres, la liste des options s'affiche comme des éléments supplémentaires dans le menu contextuel du scraper

La déclaration des options fonctionne de manière analogue à editableConf :

static parserOptions: [
...[
fieldName: string,
menuTitle: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];

Exemple de déclaration de champs supplémentaires :

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]]
],
];
Capture d'écran de l'interface avec les paramètres ci-dessus