Arayüz Üzerinden Yapılandırma
A-Parser, konfigürasyonu deklaratif bir tarzda tanımlamanıza ve veri kazıyıcıların kaynak kodunu değiştirmeye gerek kalmadan presetler oluşturmak ve düzenlemek için arayüzü kullanmanıza olanak tanır
static defaultConf
static defaultConf = {
version: '0.0.1',
results: {
flat: [
['title', 'Title'],
],
arrays: {
}
},
results_format: "Title: $title\n",
exampleKey: 'value',
};
Varsayılan veri kazıyıcı konfigürasyonu; konfigürasyona sınıf nesnesi içinden this.conf özelliği aracılığıyla erişilebilir, aşağıdaki alanlar zorunludur:
results- bu veri kazıyıcının döndürebileceği sonuçları deklaratif bir tarzda tanımlarresults_format- varsayılan sonuç formatını belirler
Diğer tüm alanlar isteğe bağlıdır, veri kazıyıcının çalışmasını etkileyen aşağıdaki parametre listesi mevcuttur:
| Parametre adı | Tür | Açıklama (varsayılan değer) |
|---|---|---|
| timeout | number | Saniye cinsinden maksimum istek bekleme süresi (60) |
| useproxy | boolean / 0 / 1 | Proxy kullanılıp kullanılmayacağını belirler (1) |
| max_size | number | Maksimum sonuç dosyası boyutu (1 * 1024 * 1024) |
| proxyretries | number | Her istek için deneme sayısı; eğer istek belirtilen deneme sayısında gerçekleştirilemezse başarısız sayılır ve atlanır (10) |
| requestdelay | number / string | Saniye cinsinden istekler arası gecikme (0). Ayrıca bir aralıkta rastgele değer de atanabilir, örneğin 10,30 - 10 ile 30 saniye arası gecikme |
| proxybannedcleanup | number | Saniye cinsinden proxy ban süresi (600) |
| pagecount | number | Veri çekme sayfa sayısı (1) |
| parsecodes | { [code: string]: any } | Başarılı sayılacak istekler için yanıt kodlarının değeri (any) |
| queryformat | string | Sorgu formatı ($query) |
Ayrıca arayüz üzerinden düzenlenebilecek özel alanlar da tanımlayabilirsiniz
static editableConf
Bu ayar, arayüz üzerinden düzenlenebilecek konfigürasyon alanlarının listesini belirler. Arayüzde aşağıdaki alan türleri mevcuttur:
textfield- sayısal ve dize değerlerinin serbestçe girilebildiği alancheckbox- açık/kapalı durumlarını içeren onay kutusucombobox- bir veya birden fazla değerin seçilebildiği açılır liste- birden fazla değer seçimi
{ multiSelect: 1 }seçeneği ile ayarlanır
editableConf, her bir öğesi ilgili konfigürasyon alanını tanımlayan bir dizidir:
static editableConf: [
...[
fieldName: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
Düzenlenebilir alanların tanımlanmasına bir örnek:
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;
}

Lütfen dikkat edin, bu örnekte editableConf için bir getter metodu kullanılmıştır; bu, örneğin bir sayfa listesi oluşturmak gibi ek işlemler yapılmasına olanak tanır. Daha basit durumlar için, defaultConf örneğinde olduğu gibi sınıfın statik özelliklerini tanımlayabilirsiniz.
static parserOptions
parserOptions, ayarları tanımlamak için alternatif bir seçenektir; seçenekler listesi, veri kazıyıcının bağlam menüsünde ek öğeler olarak görüntülenir.
Seçeneklerin bildirilmesi editableConf ile benzer şekilde çalışır:
static parserOptions: [
...[
fieldName: string,
menuTitle: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
Ek alanların tanımlanmasına bir örnek:
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]]
],
];
