Cài đặt
A-Parser chứa các nhóm cài đặt sau:
- Global Settings - các cài đặt chính của chương trình: ngôn ngữ, mật khẩu, tham số cập nhật, số lượng tác vụ đang hoạt động
- Config Presets - cài đặt luồng và phương pháp khử trùng lặp cho tác vụ
- Parser Presets - khả năng cấu hình từng công cụ cào dữ liệu riêng lẻ
- Cài đặt kiểm tra proxy - số lượng luồng và mọi cài đặt cho proxy checker
- Advanced Settings - các cài đặt tùy chọn cho người dùng nâng cao
- Task presets - lưu tác vụ để sử dụng sau này
Tất cả cài đặt (trừ cài đặt chung và bổ sung) được lưu trong các preset - các bộ cài đặt đã được lưu sẵn, ví dụ:
- Các preset cài đặt khác nhau cho công cụ cào dữ liệu
SE::Google - một preset để cào dữ liệu liên kết với độ sâu tối đa 10 trang, preset còn lại - để đánh giá mức độ cạnh tranh theo truy vấn, độ sâu cào dữ liệu 1 trang - Các preset cài đặt proxy checker khác nhau - riêng cho proxy HTTP và SOCKS
Đối với tất cả cài đặt đều có preset mặc định (default), không thể thay đổi, mọi thay đổi phải được lưu trong các preset với tên mới.
Cài đặt chung

| Tên tham số | Giá trị mặc định | Mô tả |
|---|---|---|
| Password | Không có mật khẩu | Đặt mật khẩu để đăng nhập vào A-Parser |
| Language | English | Ngôn ngữ giao diện |
| News & Tips | English | Ngôn ngữ tin tức và gợi ý |
| Enable tips | ☑ | Xác định có hiển thị gợi ý hay không |
| Check updates | ☑ | Xác định có hiển thị thông tin về việc có bản cập nhật mới trong Thanh trạng thái |
| Save window size | ☐ | Xác định có lưu kích thước cửa sổ hay không |
| Updates channel | Stable | Chọn kênh cập nhật (Ổn định, Beta, Alpha) |
| Tasks per page | 5 | Số lượng tác vụ trên mỗi trang trong Hàng đợi tác vụ |
| Max active tasks | 1 | Số lượng tác vụ đang hoạt động tối đa |
| Total threads limit | 10000 | Giới hạn luồng tổng trong A-Parser. Tác vụ sẽ không khởi chạy nếu giới hạn luồng chung nhỏ hơn số luồng trong tác vụ |
| Dynamic thread limit | ☐ | Xác định có sử dụng Giới hạn luồng động hay không |
| CPU cores (task processing) | 2 | Hỗ trợ xử lý tác vụ trên các core CPU khác nhau (chỉ dành cho giấy phép Enterprise). Chi tiết được mô tả bên dưới |
| CPU cores (result processing) | 4 | Nhiều core chỉ được dùng khi lọc, Trong xây dựng kết quả, Parse custom result (tất cả loại giấy phép) |
| Memory Saver | Best speed | Cho phép xác định bộ nhớ mà công cụ cào dữ liệu có thể sử dụng (Best speed / Medium memory usage / Save max memory). Chi tiết... |
CPU core (xử lý tác vụ)
Hỗ trợ xử lý tác vụ trên các core CPU khác nhau, tính năng này chỉ khả dụng cho giấy phép Enterprise
Tùy chọn này tăng tốc (rất nhiều lần) việc xử lý nhiều tác vụ trong hàng đợi (Settings -> Max active tasks), nhưng không tăng tốc việc thực thi một tác vụ
Ngoài ra còn có phân bổ thông minh tác vụ cho các core làm việc dựa trên tải CPU của từng tiến trình Số lượng core CPU được sử dụng được đặt trong cài đặt, mặc định là 2, tối đa là 32
Cũng như với luồng, việc chọn số core nên thực hiện bằng thử nghiệm; mức hợp lý là 2-3 core cho CPU 4 nhân, 4-6 cho 8 nhân, v.v. Cần lưu ý rằng khi số core lớn và mức tải của chúng cao, có thể xảy ra tình trạng tải 100% của tiến trình quản lý chính (aparser/aparser.exe), khi đó việc tăng thêm tiến trình để xử lý tác vụ sẽ chỉ gây chậm tổng thể hoặc hoạt động không ổn định. Cũng cần lưu ý rằng mỗi tiến trình xử lý tác vụ có thể tạo thêm tải lên tới 300% (tức là tải 100% đồng thời trên 3 core), đặc điểm này liên quan đến cơ chế xử lý thu gom rác đa luồng trong engine JavaScript v8
Cài đặt luồng
Hoạt động của A-Parser được xây dựng theo nguyên tắc xử lý dữ liệu đa luồng. Công cụ cào dữ liệu thực hiện các tác vụ song song trong các luồng riêng biệt, số lượng luồng có thể linh hoạt thay đổi tùy theo cấu hình của máy chủ.
Mô tả hoạt động của luồng
Hãy cùng xem luồng là gì trong thực tế. Giả sử bạn cần lập báo cáo cho ba tháng.
Phương án 1
Bạn có thể lập báo cáo lần lượt cho tháng 1, sau đó tháng 2, và sau đó tháng 3. Đây là ví dụ về làm việc đơn luồng. Các tác vụ được xử lý theo thứ tự.
Phương án 2
Thuê ba kế toán, mỗi người sẽ lập báo cáo cho một tháng. Sau đó, khi nhận kết quả từ cả ba, sẽ làm một báo cáo chung. Đây là ví dụ về làm việc đa luồng. Các tác vụ được xử lý đồng thời.
Như có thể thấy từ các ví dụ này, làm việc đa luồng cho phép hoàn thành tác vụ nhanh hơn, nhưng đồng thời cũng cần nhiều tài nguyên hơn (chúng ta cần 3 kế toán thay vì 1). Tương tự, đa luồng cũng hoạt động trong A-Parser. Giả sử bạn cần cào dữ liệu từ nhiều liên kết:
- với một luồng, ứng dụng sẽ cào từng site theo thứ tự
- khi làm việc với nhiều luồng, mỗi luồng sẽ xử lý liên kết của mình, và sau khi hoàn thành sẽ chuyển sang liên kết chưa xử lý tiếp theo trong danh sách
Do đó, trong phương án thứ hai toàn bộ tác vụ sẽ hoàn thành nhanh hơn đáng kể, nhưng đồng thời cần nhiều tài nguyên máy chủ hơn, vì vậy nên tuân thủ Yêu cầu hệ thống
Thiết lập luồng
Thiết lập luồng trong A-Parser được thực hiện riêng cho từng tác vụ, tùy theo các tham số cần thiết để thực hiện nó. Theo mặc định có 2 cấu hình luồng: 20 và 100 luồng, cho default và 100 Threads tương ứng.
Để vào phần cài đặt của cấu hình đã chọn, cần nhấn vào biểu tượng bút chì , sau đó phần cài đặt của nó sẽ mở ra.

Bạn cũng có thể chuyển đến cài đặt luồng qua mục menu: Settings -> Config Presets
Ở đây chúng ta có thể:
- tạo một cấu hình mới với các cài đặt riêng và lưu dưới tên của mình (nút Thêm mới)
- thực hiện thay đổi trong cấu hình hiện có, chọn nó từ danh sách thả xuống (nút Lưu)

Số luồng (Threads count)
Tham số này đặt số luồng mà tác vụ được khởi chạy với cấu hình này sẽ chạy. Số luồng có thể là bất kỳ, nhưng cần cân nhắc khả năng của máy chủ của bạn, cũng như giới hạn của gói proxy, nếu có giới hạn như vậy. Ví dụ với proxy của chúng tôi, bạn không thể chỉ định nhiều hơn gói đã chọn.
Ngoài ra cũng cần nhớ rằng tổng số luồng trong công cụ cào dữ liệu bằng tổng các tác vụ đang chạy và các proxy checker đã bật kiểm tra proxy. Ví dụ, nếu đang chạy một tác vụ 20 luồng và hai tác vụ 100 luồng mỗi tác vụ, đồng thời có một proxy checker đang hoạt động với kiểm tra proxy 15 luồng, thì tổng cộng công cụ cào dữ liệu sẽ sử dụng 20+100+100+15=235 luồng. Khi đó, nếu gói proxy được tính cho 200 luồng, sẽ có rất nhiều yêu cầu thất bại. Để tránh điều đó, cần giảm số luồng đang sử dụng. Ví dụ, tắt kiểm tra proxy (nếu không cần, việc này sẽ tiết kiệm 15 luồng) và giảm số luồng trong một trong các tác vụ thêm 20 luồng. Như vậy, đối với một trong các tác vụ đang chạy cần tạo cấu hình 80 luồng, các tác vụ còn lại giữ nguyên
Proxy checker (Proxy Checkers)
Tham số này cho phép chọn proxy checker với các cài đặt xác định. Tại đây có thể chọn tham số All, nghĩa là sử dụng tất cả proxy checker đang hoạt động, hoặc chỉ những proxy checker cần dùng trong tác vụ (có thể chọn nhiều mục)
Cài đặt này cho phép chạy tác vụ chỉ với các proxy checker cần thiết. Quy trình thiết lập proxy checker được xem xét ở đây
Tối đa luồng trên một proxy (Max threads per proxy)
Tại đây xác định số luồng tối đa mà cùng một proxy sẽ được sử dụng đồng thời. Cho phép đặt các tham số khác nhau, ví dụ 1 luồng = 1 proxy.
Theo mặc định, tham số này bằng 0, nghĩa là tắt chức năng này. Trong hầu hết trường hợp điều đó là đủ. Nhưng nếu cần giới hạn tải trên từng proxy, thì nên thay đổi giá trị
Cấm proxy toàn cục (Global proxy ban)
Tất cả tác vụ được khởi chạy với tùy chọn này đều có chung cơ sở dữ liệu cấm proxy. Đặc điểm của tham số này là danh sách proxy bị cấm cho mỗi công cụ cào dữ liệu là chung cho tất cả tác vụ đang hoạt động.
Ví dụ, proxy bị ban trong
SE::Google ở tác vụ 1 cũng sẽ bị ban cho
SE::Google ở tác vụ 2, nhưng nó vẫn có thể hoạt động bình thường trong
SE::Yandex ở cả hai tác vụ
Tối đa kết nối trên một host (Max connections per host)
Tham số này chỉ ra số lượng kết nối tối đa trên một host, được thiết kế để giảm tải cho site khi cào dữ liệu từ đó. Về bản chất, việc chỉ định tham số này cho phép kiểm soát số lượng yêu cầu tại một thời điểm, cho từng domain cụ thể. Việc bật tham số này áp dụng cho tác vụ; nếu chạy nhiều tác vụ đồng thời với cùng một cấu hình luồng, giới hạn sẽ được tính cho tất cả tác vụ.
Theo mặc định, tham số này có giá trị 0, tức là tắt.
Tái sử dụng proxy giữa các lần thử lại (Reuse proxy between retries)
Cài đặt này tắt kiểm tra tính duy nhất của proxy cho mỗi lần thử, đồng thời chức năng cấm proxy cũng sẽ không hoạt động. Điều này ngược lại có nghĩa là có thể dùng 1 proxy cho tất cả các lần thử.
Tham số này được khuyến nghị bật, ví dụ trong các trường hợp dự định sử dụng 1 proxy, mà mỗi lần kết nối đến proxy đó IP đầu ra lại thay đổi.
Chiến lược sử dụng proxy (Proxy strategy)
Cho phép quản lý chiến lược chọn proxy khi sử dụng phiên: lưu proxy từ yêu cầu thành công cho yêu cầu tiếp theo hoặc luôn sử dụng proxy ngẫu nhiên.
Khuyến nghị
Trong bài viết này đã xem xét tất cả cài đặt cho phép quản lý luồng. Cần lưu ý rằng khi cấu hình luồng, không bắt buộc phải đặt tất cả tham số được nêu trong bài viết, chỉ cần đặt những tham số đảm bảo nhận được kết quả chính xác. Thông thường chỉ cần thay đổi Threads count, các cài đặt còn lại có thể để mặc định.
Cài đặt công cụ cào dữ liệu
Mỗi công cụ cào dữ liệu có nhiều cài đặt và cho phép lưu các bộ cài đặt khác nhau vào preset. Hệ thống preset cho phép dùng cùng một công cụ cào dữ liệu với các cài đặt khác nhau tùy tình huống, hãy xem ví dụ với công cụ cào dữ liệu
SE::Google:
Preset 1: "Cào dữ liệu số lượng liên kết tối đa"
- Số trang (Pages count):
10
Như vậy công cụ cào dữ liệu sẽ thu thập số lượng liên kết tối đa, đi qua tất cả các trang của kết quả tìm kiếm
Preset 2: "Cào dữ liệu mức độ cạnh tranh theo truy vấn"
- Số trang (Pages count):
1 - Định dạng kết quả (Results format):
$query: $totalcount\n
Trong trường hợp này, chúng ta nhận được số lượng kết quả trả về theo truy vấn (mức độ cạnh tranh của truy vấn) và để đạt tốc độ cao hơn, chỉ cần cào trang đầu tiên
Tạo preset

Việc tạo preset bắt đầu bằng cách chọn công cụ cào dữ liệu/các công cụ cào dữ liệu và xác định kết quả cần nhận.
Tiếp theo cần hiểu dữ liệu đầu vào cho công cụ cào dữ liệu đã chọn là gì; trong ảnh chụp màn hình phía trên, công cụ cào dữ liệu
SE::Google được chọn, dữ liệu đầu vào của nó là bất kỳ dòng nào như khi bạn tìm kiếm gì đó trong trình duyệt. Có thể chọn tệp truy vấn hoặc nhập truy vấn vào ô văn bản.
Bây giờ cần ghi đè cài đặt (chọn các tùy chọn) cho công cụ cào dữ liệu, thêm khử trùng lặp. Có thể dùng trình xây dựng truy vấn, nếu cần xử lý truy vấn. Hoặc dùng trình xây dựng kết quả, nếu cần xử lý kết quả theo cách nào đó.
Tiếp theo cần chú ý đến việc chỉnh sửa tên tệp kết quả, và nếu cần thì thay đổi theo ý mình.
Mục cuối cùng là chọn các tùy chọn bổ sung, đặc biệt là tùy chọn Do log (Ghi log). Rất hữu ích nếu bạn muốn biết nguyên nhân lỗi cào dữ liệu.
Sau tất cả những điều này cần lưu preset và thêm vào hàng đợi tác vụ.
Ghi đè cài đặt
Override preset - ghi đè nhanh các cài đặt cho công cụ cào dữ liệu, tùy chọn này có thể được thêm trực tiếp trong Trình chỉnh sửa tác vụ. Chỉ với một cú nhấp có thể thêm nhiều tham số. Trong danh sách cài đặt, các giá trị mặc định được hiển thị, và nếu tùy chọn được tô đậm thì nghĩa là nó đã được ghi đè trong preset

Trong ví dụ này đã ghi đè tùy chọn Pages count (Số trang) và đặt thành 5.
Trong tác vụ có thể sử dụng số lượng không giới hạn các tùy chọn Override preset, nhưng nếu thay đổi nhiều, thì sẽ thuận tiện hơn khi tạo một preset mới và lưu tất cả thay đổi vào đó.
Ngoài ra có thể lưu các ghi đè rất dễ dàng bằng chức năng Save overrides to preset (Lưu ghi đè). Chúng sẽ được lưu thành một preset riêng cho công cụ cào dữ liệu đã chọn.

Sau đó, trong tương lai chỉ cần chọn preset đã lưu này từ danh sách và sử dụng.

Cài đặt chung cho tất cả công cụ cào dữ liệu
Mỗi công cụ cào dữ liệu có một bộ cài đặt riêng, thông tin về cài đặt của từng công cụ cào dữ liệu bạn có thể tìm trong phần tương ứng
Trong bảng này chúng tôi trình bày các cài đặt chung cho tất cả công cụ cào dữ liệu
| Tên tham số | Giá trị mặc định | Mô tả |
|---|---|---|
| Request retries | 10 | Số lần thử cho mỗi yêu cầu, nếu yêu cầu không 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 |
| Use proxy | ☑ | Xác định có sử dụng proxy hay không |
| Query format | $query | Định dạng yêu cầu |
| Result format | Mỗi công cụ cào dữ liệu có giá trị riêng | Định dạng đầu ra của kết quả |
| Proxy ban time | Mỗi công cụ cào dữ liệu có giá trị riêng | Thời gian cấm proxy tính bằng giây |
| Request timeout | 60 | Thời gian chờ tối đa của yêu cầu tính bằng giây |
| Request delay | 0 | Độ trễ giữa các yêu cầu tính bằng giây, có thể đặt giá trị ngẫu nhiên trong khoảng, ví dụ 10,30 - độ trễ từ 10 đến 30 giây |
| Proxy Checker | All | Proxy từ các checker nào should được sử dụng (chọn giữa tất cả hoặc liệt kê cụ thể) |
Cài đặt chung cho tất cả công cụ cào dữ liệu hoạt động qua giao thức HTTP
| Tên tham số | Giá trị mặc định | Mô tả |
|---|---|---|
| Max body size | Mỗi công cụ cào dữ liệu có giá trị riêng | Kích thước tối đa của trang kết quả tính bằng byte |
| Use gzip | ☑ | Xác định có sử dụng nén lưu lượng truyền hay không |
| Extra query string | Cho phép chỉ định các tham số bổ sung trong chuỗi yêu cầu |
Các cài đặt mặc định cho từng công cụ cào dữ liệu có thể khác nhau. Chúng được lưu trong preset default trong cài đặt của từng công cụ cào dữ liệu.
Cài đặt proxy checker
Chi tiết về Thiết lập proxy checker
Cài đặt bổ sung

- Ngắt dòng cho phép chọn giữa biến thể kết thúc dòng Unix và Windows khi lưu kết quả vào tệp
- Định dạng số - đặt cách hiển thị số trong giao diện của A-Parser
- Macros của mẫu