Chuyển đến nội dung chính

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ểuMô tả (giá trị mặc định)
timeoutnumberThời gian chờ tối đa cho yêu cầu tính bằng giây (60)
useproxyboolean / 0 / 1Xác định xem có sử dụng proxy hay không (1)
max_sizenumberKích thước tệp kết quả tối đa (1 * 1024 * 1024)
proxyretriesnumberSố 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)
requestdelaynumber / 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
proxybannedcleanupnumberThời gian cấm proxy tính bằng giây (600)
pagecountnumberSố 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)
queryformatstringĐịnh dạng truy vấn ($query)
ghi chú

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ắt
  • combobox - 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;
}
Ảnh chụp màn hình giao diện với các thiết lập trên
ghi chú

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]]
],
];
Ảnh chụp màn hình giao diện với các thiết lập trên