WEB CRAWLER

Một phần của tài liệu xây dựng một công cụ tìm kiếm thực sự (Trang 30 - 32)

1. MỤC ĐÍC H

1.5.WEB CRAWLER

1.5.1. Giới thiệu

Web crawler[27] nhìn một cách tổng thể là chương trình thực hiện công việc khám phá và tải các trang Web từ trên mạng Internet. Thuật ngữ tiếng Anh gọi công việc này là crawl. Để thuận tiện, trong tài liệu này, đôi khi từ crawl không được dịch sang tiếng Việt. Crawler còn được gọi bởi một số tên khác như spider, wanderer, robot, ..

Thông thường thì crawler bắt đầu với một tập các địa chỉ trang Web khởi điểm

(initial set of URLs) S0 chẳng hạn. Tập S0 sẽ được đưa vào hàng đợi (queue), nơi mà

các URLs được sắp xếp và crawl sau đó. Crawler sẽ lần lượt lấy các URLs từ hàng đợi theo một thứ tự nào đó tùy thuộc vào cách cài đặt crawler rồi tải các trang Web tương ứng với các URLs đó về, cất giữ chúng (nếu cần thiết), tách các URLs khác trên trang Web vừa được tải về rồi xếp vào hàng đợị Quá trình này cứ thế tiếp diễn cho tới khi crawler quyết định dừng lại (có thể do hết hàng đợi hoặc vì một lý do nào đó).

Đối với Search engine, đây là thành phần vô cùng quan trọng, dữ liệu được crawl về sẽ được sử dụng để tạo nên kho dữ liệu, đánh chỉ mục và phục vụ cho các nhu cầu tìm kiếm sau nàỵ

Với một khối lượng thông tin khổng lồ và thay đổi với tốc độ chóng mặt như hiện nay, việc xây dựng Web crawler cho Search Engine phải đối mặt với nhiều vấn đề thách thức. Một crawler tốt phải giải quyết tốt các vấn đề được đưa ra sau đâỵ

Các vấn đề đặt ra với crawler

1.5.1.1. Lựa chọn trang Web nào để khám phá?

Trong hầu hết các trường hợp, crawler không thể tải về tất cả các trang Web. Ngay cả các Search Engine mạnh nhất hiện nay cũng chỉ đánh chỉ mục được một phần nhỏ các trang Web trên mạng Internet. Bởi vì, các trang Web luôn luôn được con người trên toàn thế giới liên tục tạo rạ Chính vì vậy, việc lựa chọn trang Web nào được crawl trước (quan trọng hơn) là một vấn đề cần phải quan tâm và nó sẽ giúp cho các thông tin mà Search Engine xây dựng trở nên sát sao và có ý nghĩạ

1.5.1.2. Trích rút liên kết từ các trang Web như thế nàỏ

Crawler giao tiếp với Web server bằng giao thức HTTP để lấy về các trang

Web. Để thu được nhiều URLs nhất từ các trang Web đã lấy về, crawler hiểu rõ ngôn ngữ HTML. Các thẻ HTML có chứa URL bao gồm các thẻ anchor (<a href=”URL”… >), các thẻ option (<option value =”URL”…>, thẻ area (<area href=”URL”…>), …

1.5.1.3. Làm tươi các trang Web như thế nàỏ

Một khi crawler đã tải về số lượng lớn các trang Web, nó sẽ phải viếng thăm các trang Web đó thường xuyên để phát hiện sự thay đổi của các trang Web đó với mục đích cập nhật thông tin về các trang Web, giữ cho các trang Web mà nó có được cập nhật hơn (up-to-date). Do tốc độ thay đổi của các trang Web là khá cao và khác nhau đối với các Website khác nhau (có những Website được cập nhật hàng ngày nhưng cũng có những site từ lúc ra đời chưa hề được cập nhật) nên việc lựa chọn trang Web nào để viếng thăm lại, trang Web nào có thể bỏ qua hoặc ít viếng thăm lại hơn là một trong những nhân tố quyết định đến sự “cập nhật” của dữ liệu về các trang Web. Đương nhiên là các trang Web thay đổi thường xuyên sẽ phải được viếng thăm thường xuyên hơn.

1.5.1.4. Giảm tải cho máy phục vụ Web

Khi crawler thu thập các trang Web từ khắp nơi trên mạng Internet về, nó sử dụng các tài nguyên của các Web server thuộc về các tổ chức khác. Các tài nguyên đó thông thường là CPU, bộ nhớ của các Web server cũng như đường truyền Internet của các tổ chức đó (đường truyền thậm chí còn được chia sẻ với các tổ chức khác). Chính vì vậy mà crawler phải hạn chế tối đa sự ảnh hưởng của nó lên các tài nguyên đó để tránh sự than phiền của các tổ chức đó, thậm chí còn bị cấm truy cập (block) nếu như quá lạm dụng tài nguyên của họ.

1.5.1.5. Tốc độ crawl và crawl song song

Do lượng thông tin trên mạng là khổng lồ mà crawler thường được thực thi trên nhiều máy tính và cùng một lúc tải về nhiều trang Web để tăng tốc độ cũng như tránh được hiện tượng nhiều crawlers tập trung vào một site nào đó cùng lúc dẫn đến lạm dụng tài nguyên của Web server.

1.5.1.6. Crawl lưu động(mobile crawling)

Mobile crawling là một hướng tiếp cận khác. Search Engine tung ra nhiều crawler agents (các tác tử crawl) đến các Web server (các crawlers này có thể di chuyển qua các Web server khác nhau). Các crawlers này hoạt động trên đó và khi thu được kết quả, chúng sẽ trả về cho crawler manager. Mobile crawlers có nhiều ưu điểm như truy cập dữ liệu cục bộ (do chạy ngay trên Web server), lựa chọn, lọc, nén trang Web từ xa (trên Web server), …

Một phần của tài liệu xây dựng một công cụ tìm kiếm thực sự (Trang 30 - 32)