CHƢƠNG 2 MỘT SỐ HỆ THỐNG THU THẬP DỮ LIỆU
2.1. Kiến trúc chung của hệ thống Web Crawler
2.1.3. Tải các trang web
Để nạp mọ t trang web, ta cần mọ t HTTP client để gửi mọ t yêu cầu HTTP tới mọ t trang web và đọc các đáp ứng. Phía client cần có mọ t thời gian timeout để đảm bảo r ng nó không lãng phí quá nhiều thời gian để giao tiếp với mọ t server quá chạ m hoạ c đọc mọ t trang web quá lớn. Trên thực tế, thu ờng giới hạn client chỉ download các trang web có kích thu ớc nhỏ ho n 10-20KB. Phía client cần duyẹ t các đáp ứng header để lấy các mã trạng thái và các sự định hu ớng lại (redirection). Chúng cũng duyẹ t header và lu u thời gian sửa đổi (last-modify) để xác định đọ cạ p nhạ t của trang web. Viẹ c kiểm tra các lỗi và ngoại lẹ là rất quan trọng trong quá trình tải trang web do chúng ta sẽ phải liên hẹ tới hàng triẹ u server ở xa b ng cùng mọ t đoạn mã lẹ nh. Thêm vào đó, viẹ c thu thạ p các thống kê về thời gian timeout và các mã trạng thái cũng rất hữu ích trong viẹ c xác định các vấn đề nảy sinh hoạ c để thay đổi tự đọ ng giá trị timeout. Các ngôn ngữ lạ p trình hiẹ n đại nhu Java hoạ c Perl cung cấp các co chế đo n giản cùng nhiều giao diẹ n lạ p trình để tải các trang web. Tuy nhiên, ta cũng cần phải cẩn thạ n trong viẹ c sử dụng các giao diẹ n bạ c cao do có thể sẽ khó tìm ra các lỗi ở bạ c thấp.
Chúng ta không thể kết thúc viẹ c nói về quá trình crawling mà không đề cạ p tới giao thức loại trừ robot - Robot Exclusion Protocol. Giao thức này cung cấp mọ t co chế cho các nhà quản trị web server để thông báo về các quyền truy nhạ p file trên server, đạ c biẹ t là để chỉ định các file không đu ợc truy cạ p bởi mọ t crawler. Điều này đu ợc thực hiẹ n b ng cách lu u mọ t file có tên robots.txt du ới thu mục chủ của web server (ch ng hạn http: www.biz.uiowa.edu robots.txt). File này cung cấp các chính sách truy cạ p các cho User-agents khác nhau (robots hoạ c crawler). Mọ t giá trị User- agent „*‟ biểu diễn mọ t chính sách mạ c định cho bất kỳ crawler nào không khớp (match) các giá trị User-agent khác trong file. Mọ t số các đầu vào bị cấm Disallow đu ợc đề ra cho mọ t User-agent. Bất kỳ URL nào bắt đầu với giá trị tru ờng disallow đu ợc đạ t sẽ không đu ợc truy xuất bởi các crawler ứng với các giá trị User-agent đã chỉ định. Khi mọ t crawler muốn lấy ra mọ t trang web từ web server, đầu tiên nó phải nạp file robots.txt và đảm bảo r ng URL cần nạp là không bị cấm. Các thông tin chi tiết về giao thức loại trừ này có thể tìm thấy ở http: www.robotstxt.org wc norobots.html. Viẹ c lu u cache các chính sách truy nhạ p của mọ t số server đu ợc truy nhạ p gần đây là khá hiẹ u quả. Điều này cho ph p tránh phải truy nhạ p mọ t file robots.txt mỗi khi cần nạp mọ t URL. Tuy nhiên, ta cần phải đảm bảo r ng các thông tin trong cache là đủ cạ p nhạ t.
Ví dụ Ý nghĩa
User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/
Tất cả các máy tìm kiếm có thể thăm tất cả các thƣ mục ngoại trừ hai thƣ mục đề cập ở đây
User-agent: BadBot Disallow: /
Máy tìm kiếm BadBot không đƣợc ph p thăm bất cứ thƣ mục nào
User-agent: BadBot Disallow: /
User-agent: * Disallow: /private/
Riêng máy tìm kiếm BadBot không đƣợc ph p thăm bất cứ thƣ mục nào còn tất cả các máy tìm kiếm còn lại đều có quyền thăm tất cả các thƣ mục ngoại trừ thƣ mục private