Xây dựng môđun thu thập (Crawler)

Một phần của tài liệu Hệ thống bóc tách giá cả sản phẩm tự động (Trang 55)

3.4.2.1. Chức năng

Mô đun crawler của hệ thống đảm nhiệm hai công việc thu thập nguồn dữ liệu, tải trang Web về máy địa phương của hệ thống đang chạy. Các dữ liệu được tải về và cập nhật trên máy địa phương của chương trình đang chạy.

3.4.2.2. Phân tích

Một crawler được xây dựng để giả lập cơ chế làm việc tương tự như một trình duyệt Web thông thường. Trước tiên crawler cần được xây dựng khả năng nhận nội dung một trang Web từ tham số truyền vào là địa chỉ URL. Để thực hiện được việc này, crawler gửi một yêu cầu theo giao thức HTTP và nhận kết quả trả về cũng bằng giao thức HTTP. Các thao tác trên giao thức HTTP đã được thư viện của .Net cung cấp.

Trong suốt quá trình thu thập, crawler duy trì một hàng đợi để chứa các URL chờ được xử lí. Đầu tiên URL được thêm vào hàng đợi. Sau đó crawler thực hiện một vòng lặp liên tục để lấy các URL và xử lí trên URL đó. Khi xử lí URL, crawler yêu cầu nội dung trang Web tương ứng, rồi thực hiện tìm tất cả các URL chưa được xử lí bao giờ để thêm vào hàng đợi, đồng thời crawler lưu một bản sao của trang Web trên máy địa phương của chương trình đang chạy.

Crawler sẽ kết thúc khi trong hàng đợi không còn một URL nào nữa. Vòng lặp xử lí của crawler luôn hữu hạn, nghĩa là có điểm dừng bởi tập tất cả các URL luôn tạo thành một tập liên kết khép kín, vì thế, chúng dừng lại khi tất cả các URL đó đã được xử lí.

Bên cạnh đó, crawler cũng được tham số hóa một số lựa chọn. Nó có thể thực hiện quét tất cả các liên kết đến các site khác hoặc bỏ qua tùy tham số được chọn. Để tạo hiệu suất cao cho mô đun bóc tách, dữ liệu đầu vào cần được chọn lọc. Chính vì thế, crawler được cung cấp một tham số đầu vào cho phép lựa chọn crawler có quét các URL dựa trên một mẫu nào đó không. Ví dụ, đối với Site Hoàng Hà Mobile các trang liệt kê sản phẩm đều có URL mẫu dạng giống nhau như sau:

http://hoanghamobile.com/Search.aspx?MobileName=&ManufacturerName=te nhang&Price=&Operator=&os=&Page=chisotrang”. Nếu crawler được chỉ định

tham số để nhận biết mẫu này thì số lượng trang Web cần bóc tách sẽ giảm đi đáng kể, theo đó tiết kiệm được thời gian, CPU và sai số cũng giảm. Một số lựa chọn khác cũng được đưa vào crawler để việc sử dụng có thể tùy biến linh hoạt như giới hạn số URL xử lí tối đa.

Một phần của tài liệu Hệ thống bóc tách giá cả sản phẩm tự động (Trang 55)