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ü