Ana içeriğe atla

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ımlar

  • results_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ürAçıklama (varsayılan değer)
timeoutnumberSaniye cinsinden maksimum istek bekleme süresi (60)
useproxyboolean / 0 / 1Proxy kullanılıp kullanılmayacağını belirler (1)
max_sizenumberMaksimum sonuç dosyası boyutu (1 * 1024 * 1024)
proxyretriesnumberHer 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)
requestdelaynumber / stringSaniye 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
proxybannedcleanupnumberSaniye cinsinden proxy ban süresi (600)
pagecountnumberVeri ç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)
queryformatstringSorgu formatı ($query)
not

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 alan
  • checkbox - açık/kapalı durumlarını içeren onay kutusu
  • combobox - 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;
}
Yukarıdaki ayarlarla arayüzün ekran görüntüsü
not

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]]
],
];
Yukarıdaki ayarlarla arayüzün ekran görüntüsü