Cấu hình qua giao diện
A-Parser cho phép thiết lập cấu hình theo phong cách khai báo, cũng như sử dụng giao diện để tạo và chỉnh sửa các preset mà không cần sửa đổi mã nguồn của các công cụ cào dữ liệu
static defaultConf
static defaultConf = {
version: '0.0.1',
results: {
flat: [
['title', 'Title'],
],
arrays: {
}
},
results_format: "Title: $title\n",
exampleKey: 'value',
};
Cấu hình mặc định của công cụ cào dữ liệu, cấu hình sẽ khả dụng trong đối tượng lớp thông qua thuộc tính this.conf, các trường sau đây là bắt buộc:
results- mô tả theo phong cách khai báo các kết quả mà công cụ cào dữ liệu này có thể trả vềresults_format- thiết lập định dạng kết quả mặc định
Tất cả các trường còn lại là tùy chọn, dưới đây là danh sách các tham số ảnh hưởng đến hoạt động của công cụ cào dữ liệu:
| Tên tham số | Kiểu | Mô tả (giá trị mặc định) |
|---|---|---|
| timeout | number | Thời gian chờ tối đa cho yêu cầu tính bằng giây (60) |
| useproxy | boolean / 0 / 1 | Xác định xem có sử dụng proxy hay không (1) |
| max_size | number | Kích thước tệp kết quả tối đa (1 * 1024 * 1024) |
| proxyretries | number | Số lần thử cho mỗi yêu cầu, nếu yêu cầu không thể thực hiện được sau số lần thử đã chỉ định thì nó được coi là thất bại và bị bỏ qua (10) |
| requestdelay | number / string | Độ trễ giữa các yêu cầu tính bằng giây (0). Cũng có thể thiết lập giá trị ngẫu nhiên trong một khoảng, ví dụ 10,30 - độ trễ từ 10 đến 30 giây |
| proxybannedcleanup | number | Thời gian cấm proxy tính bằng giây (600) |
| pagecount | number | Số lượng trang cào dữ liệu (1) |
| parsecodes | { [code: string]: any } | Giá trị mã phản hồi cho các yêu cầu sẽ được coi là thành công (any) |
| queryformat | string | Định dạng truy vấn ($query) |
Bạn cũng có thể thiết lập các trường tùy chỉnh có thể chỉnh sửa được thông qua giao diện
static editableConf
Thiết lập này xác định danh sách các trường cấu hình có thể được chỉnh sửa qua giao diện. Có các loại trường sau trong giao diện:
textfield- trường để nhập các giá trị chuỗi và số tùy ýcheckbox- cờ với các trạng thái bật/tắtcombobox- danh sách thả xuống để chọn một hoặc nhiều giá trị- việc chọn nhiều giá trị được thiết lập qua tùy chọn
{ multiSelect: 1 }
editableConf là một mảng, mỗi phần tử của nó mô tả một trường cấu hình tương ứng:
static editableConf: [
...[
fieldName: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
Ví dụ về khai báo các trường có thể chỉnh sửa:
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ưu ý rằng trong ví dụ này, phương thức getter được sử dụng cho editableConf, cho phép thực hiện xử lý bổ sung, ví dụ như tạo danh sách các trang. Đối với các trường hợp đơn giản hơn, bạn có thể thiết lập các thuộc tính tĩnh của lớp, tương tự như đối với defaultConf
static parserOptions
parserOptions là một phương án thay thế để thiết lập cài đặt, danh sách các tùy chọn sẽ hiển thị dưới dạng các mục bổ sung trong menu ngữ cảnh của công cụ cào dữ liệu
Việc khai báo các tùy chọn hoạt động tương tự như editableConf:
static parserOptions: [
...[
fieldName: string,
menuTitle: string,
fieldConfig: [
fieldType: 'textfield' | 'combobox' | 'checkbox',
fieldLabel: string,
fieldOptions?: {},
...fieldValues: [fieldValue: any, valueTitle: string][]
]
][]
];
Ví dụ về khai báo các trường bổ sung:
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]]
],
];
