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

Bộ lọc kết quả

Trong A-Parser, có khả năng lọc kết quả theo một tập hợp các quy tắc nhất định và chỉ lưu vào kết quả những dữ liệu cần thiết.

Sử dụng lọc

Các trường hợp ứng dụng chính:

  • Chỉ lưu các liên kết có chứa một chuỗi ký tự nhất định (ví dụ: dấu hiệu của CMS)
  • Lọc danh sách tên miền theo các thông số nhất định (ví dụ: Yandex TIC từ 300, ngôn ngữ RU)
  • Kiểm tra phản hồi từ máy chủ (ví dụ: 200 OK hoặc nội dung của các tiêu đề cụ thể)
  • Kiểm tra sự hiện diện của truy vấn gốc trong đoạn trích (snippet)
  • Bất kỳ trường hợp ứng dụng nào khác cần giới hạn kết quả theo các điều kiện nhất định

Có thể thêm các bộ lọc trong Trình chỉnh sửa tác vụ bằng cách nhấp vào biểu tượng công cụ đối diện với công cụ cào dữ liệu tương ứng:

Tùy chọn Bộ lọc trong Trình chỉnh sửa tác vụ

Các loại lọc

Có thể lọc cả kết quả đơn lẻ và mảng kết quả. Có một số loại bộ lọc:

  • Theo sự bằng nhau hoặc không bằng nhau của các chuỗi
  • Theo sự hiện diện hoặc vắng mặt của chuỗi con
  • Theo sự phù hợp hoặc không phù hợp với biểu thức chính quy
  • Các giá trị số có thể được lọc theo lớn hơn, nhỏ hơn và bằng nhau
mẹo

Đặc điểm hoạt động

  • Khi lọc các mảng kết quả, trong mảng chỉ còn lại các kết quả khớp với bộ lọc
  • Khi lọc các kết quả đơn giản, nếu kết quả không khớp với bộ lọc, thì toàn bộ kết quả cho truy vấn đó sẽ bị bỏ qua, bao gồm cả khi sử dụng nhiều công cụ cào dữ liệu
  • Khi sử dụng từ hai bộ lọc trở lên trong một tác vụ, logic sẽ được áp dụng giữa chúng, nói cách khác kết quả sẽ được lưu nếu nó khớp với điều kiện của tất cả các bộ lọc cùng một lúc
  • Khi so sánh trong trường chỉ định giá trị (chuỗi, biểu thức chính quy hoặc giá trị số), có thể sử dụng công cụ tạo mẫu Template Toolkit, tất cả các biến tương tự như trong Định dạng kết quả chung đều có sẵn

Ví dụ

Lọc theo văn bản trên trang

Kiểm tra danh sách trang web để tìm văn bản cụ thể trên trang
Sử dụng tệp chứa các liên kết làm truy vấn, kết quả nhận được là một tệp đã lọc chứa các liên kết có xuất hiện văn bản cần tìm.

Sử dụng công cụ cào dữ liệu Net::HTTPNet::HTTP để tải trang cần tìm, lưu truy vấn (liên kết mà chúng ta kiểm tra) vào kết quả. Lọc kết quả $data - nội dung của trang đã tải xuống, đặt loại bộ lọc Contain string và chỉ định chính chuỗi đó:

Ví dụ về lọc theo văn bản trên trang

Lọc hình ảnh theo kích thước

Lọc hình ảnh theo độ phân giải
Lọc chiều cao và chiều rộng của hình ảnh khi cào dữ liệu qua SE::Google::ImagesSE::Google::Images, chỉ lưu những hình ảnh lớn hơn 500x500 pixel:

Ví dụ về lọc hình ảnh theo kích thước

Lọc theo nhiều dấu hiệu

Lọc liên kết theo sự hiện diện của bất kỳ chuỗi nào trong số nhiều chuỗi khác nhau
Để lọc liên kết theo nhiều chuỗi khác nhau, chúng ta sẽ sử dụng khả năng chỉ định biểu thức chính quy, bằng cách viết nhiều dấu hiệu cách nhau bởi dấu phân cách:

showthread\.php
/forum/
viewtopic\.php\?t=
ghi chú

Lưu ý rằng các biểu thức chính quy yêu cầu thoát (escape) một số ký tự

Ví dụ về lọc theo nhiều tiêu chí

Sử dụng truy vấn trong bộ lọc

Lưu các đoạn trích Google có chứa truy vấn gốc
Trong trường chuỗi để so sánh, hãy chỉ định rõ ràng [% query %] - biến chứa truy vấn, chọn Sensitive để tìm kiếm chuỗi con có tính đến định dạng chữ cái:

Ví dụ về việc sử dụng truy vấn trong bộ lọc