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.4. Duyệt và phân tích nội dung
Sau khi trang web đã đu ợc tải về, chúng ta cần duyẹ t nọ i dung của nó để lấy ra các thông tin sẽ đu ợc nạp trở lại và giúp định hu ớng viẹ c đi theo các đu ờng dẫn tiếp theo của crawler. Viẹ c duyẹ t nọ i dung có thể đo n giản chỉ bao hàm viẹ c trích ra các URL liên kết mà trang web liên kết tới hay nó có thể bao hàm các xử l phức tạp nhu làm sạch các nọ i dung HTML để phân tích cấu trúc cây của các thẻ. Viẹ c duyẹ t có thể bao gồm các
bu ớc để chuẩn hóa các URL đu ợc lấy ra, loại bỏ các từ dừng khỏi nọ i dung trang web .v.v. Các thành phần của bọ duyẹ t đu ợc mô tả ở phần sau.
3.2.4.1. Quá trình lấy và chuẩn hoá các URL
Bọ duyẹ t HTML đã đu ợc xây dựng s n trong rất nhiều ngôn ngữ. Chúng cung cấp các tính na ng để dễ dàng xác định các thẻ HTML và liên kết giá trị các cạ p thuọ c tính trong mọ t va n bản HTML cho tru ớc. Để lấy ra đu ợc các URL hyperlink từ mọ t trang web, ta có thể sử dụng các bọ duyẹ t ở trên để tìm các thẻ anchor và lấy ra các giá trị của thuọ c tính href tu o ng ứng. Tuy nhiên, chúng ta cần chuyển các URL tu o ng đối sang các địa chỉ URL tuyẹ t đối sử dụng URL co sở của trang web no i chúng đu ợc trích ra.
Các URL khác nhau tu o ng ứng với cùng mọ t trang web có thể đu ợc ánh xạ vào mọ t dạng chuẩn đo n nhất. Điều này rất quan trọng nh m tránh đu ợc viẹ c nạp cùng mọ t trang web nhiều lần. Sau đây là các bu ớc đu ợc sử dụng trong các hàm chuẩn hóa thông dụng:
- Chuyển giao thức và tên máy chủ sang dạng chữ thu ờng.Ví dụ: HTTP: www.UIOWA.edu đu ợc chuyển thành http: www.uiowa.edu - Loại bỏ phần anchor hoạ c reference của URL. Do đó:
http: spiders.uiowa.edu faq.htm đu ợc thu gọn thành http://spiders.uiowa.edu/faq.htm
- Thực hiẹ n viẹ c mã hóa URL b ng các k tự thông dụng nhu „ ‟. Điều này sẽ nga n chạ n các crawler khỏi bị đánh lừa http://dollar.biz.uiowa.edu/~pant/ là mọ t URL khác với http://dollar.biz.uiowa.edu/%7Epant/
- Đối với mọ t số URL, thêm vào dấu „ ‟. http: dollar.biz.uiowa.edu và http: dollar.biz.uiowa.edu phải cùng ánh xạ vào cùng mọ t dạng chuẩn. Viẹ c thêm vào dấu „ ‟ hay không trong nhiều tru ờng hợp đòi hỏi kinh nghiẹ m. - Sử dụng các kinh nghiẹ m để nhạ n ra các trang web mạ c định. Các tên file nhu index.html hay index.htm có thể bị loại khỏi URL bởi chúng vẫn đu ợc coi là các file mạ c định. Nếu điều này là đúng, chúng có thể đu ợc lấy ra b ng cách chỉ sử dụng URL co sở.
- Loại bỏ k tự „..‟ và thu mục cha khỏi đu ờng dẫn URL. Do đó, địa chỉ URL 7epant Bizlntel Seeds .. ODPSeeds.dat đu ợc đo n giản hóa thành /%7Epant/Bizlnel/ODPSeeds.dat.
- Để lại các số hiẹ u cổng trong các URL ngoại trừ đó là cổng 80. Mọ t cách khác là để lại các số hiẹ u cổng trong URL và thêm cổng 80 nếu số hiẹ u cổng không đu ợc chỉ định.
3.2.4.2. Loại bỏ các từ dừng và chuyển các dạng thức của từ sang dạng gốc Khi duyẹ t mọ t trang web để trích ra các thông tin nọ i dung hoạ c để tính điểm các URL mà trang đó trỏ tới, thông thu ờng ta nên loại bỏ các từ đu ợc dùng thu ờng xuyên hay từ dừng (stopwords) nhu „it‟ hay „can‟ trong Tiếng Anh... Tiến trình xử l viẹ c loại bỏ các từ dừng khỏi va n bản đu ợc gọi là stoplisting. Ngoài viẹ c xử l các từ dừng, ta cũng cần lấy ra từ gốc của các từ có trong va n bản. Quá trình stemming chuẩn hóa các từ b ng cách đúc kết các hình thái của các từ thành mọ t từ ở dạng gốc hay stem. Ví dụ: từ connect, connected hay connection đều đu ợc đu a về dạng connect.
3.2.4.3. Xây dựng các thẻ HTML
Các chu o ng trình crawler có thể đánh giá giá trị của mọ t URL hoạ c mọ t từ trong nọ i dung trang web b ng cách xem x t ngữ cảnh của các thẻ HTML mà nó thuọ c vào. Để làm đu ợc điều này, mọ t crawler cần sử dụng cây các thẻ hoạ c cấu trúc DOM của trang HTML. Hình 2-2 chỉ ra cấu trúc cây của các thẻ tu o ng ứng với va n bản HTML nguồn. Thẻ <html> đu ợc lấy làm gốc của cây các thẻ khác và text tạo thành các nút của cây. Đáng tiếc là, rất nhiều trang web có cấu trúc HTML không chuẩn. Ví dụ, mọ t thẻ bắt đầu có thể không có thẻ đóng, hoạ c các thẻ không đu ợc lồng nhau mọ t cách hợp l . Trong nhiều tru ờng hợp, thẻ <html> hoạ c <body> đều bị thiếu trong trang HTML. Do đó các tiêu chuẩn dựa trên cấu trúc (structure-based criteria) thu ờng cần có mọ t bu ớc tiền xử l để chuẩn hóa mọ t va n bản HTML có cấu trúc không chuẩn, quá trình xử l này gọi là làm sạch (tidying) các trang HTML. Nó bao gồm cả viẹ c ch n thêm các thẻ bị thiếu và sắp xếp lại thứ tự các thẻ trong trang. Viẹ c làm sạch mọ t trang HTML là cần thiết để ánh xạ nọ i dung của trang vào trong mọ t cấu trúc cây để đảm bảo tính toàn vẹn, mỗi nút có mọ t cha duy nhất, từ đó phân tích nên cấu trúc cây của các thẻ. Chú r ng viẹ c phân tích cấu trúc DOM chỉ cần thiết nếu crawler theo chủ điểm có định sử dụng cấu trúc của trang HTML cho những phân tích phức tạp. Còn nếu crawler chỉ cần các liên kết trong mọ t trang, các từ khóa và vị trí xuất hiẹ n của chúng trong trang web thì chỉ cần sử dụng các bọ duyẹ t HTML thông thu ờng. Các bọ duyẹ t này rất s n trong nhiều ngôn ngữ lạ p trình.
Hình 2-2 Trang HTML và cấu trúc cây của hệ thống tƣơng ứng
Phần đầu của chƣơng này giới thiệu cấu trúc cơ bản của một Web Crawler. Tiếp theo, tôi sẽ giới thiệu hai hệ thống thu thập dữ liệu đƣợc trình bày trong các bài báo khoa học và một hệ thống đã đƣợc triển khai trên thực tế.