Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,4 MB
Nội dung
Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 LỜI CẢM ƠN Tôi xin bày tỏ lòng biết ơn sâu sắc của mình đến thầy Hoàng Xuân Huấn, thuộc bộ môn Khoa học máy tính, khoa Công nghệ thông tin, trường Đại học Công Nghệ, ĐHQGHN. Trong quá trình thực hiện khóa luận, thầy đã nhiệt tình giúp đỡ, giải đáp các thắc mắc tạo động lực giúp tôi hoàn thành khóa luận tốt nghiệp này. Tôi cũng xin được bày tỏ lời cảm ơn tới các thầy cô trong bộ môn nói riêng và trong khoa Công nghệ thông tin nói chung đã nhiệt tình giảng dạy để giúp chúng tôi có được như ngày hôm nay. Cuối cùng là lời cảm ơn tới gia đình, bạn bè những người luôn sát cánh bên tôi những lúc khó khăn, luôn ủng hộ giúp đỡ để tôi hoàn thành khóa luận này. I Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 TÓM TẮT NỘI DUNG Do nhu cầu thu thập thông tin của con người ngày càng tăng, lượng thông tin trên internet ngày càng phong phú nên vấn đề tổng hợp thông tin ngày càng trở nên bức thiết. Với một lượng dữ liệu lớn việc thu thập bằng tay tốn rất nhiều công sức, và không đạt hiệu quả cao, chính vì thế cần một công nghệ có thể tổng hợp thông tin một cách tự động và trình thu thập web đã ra đời. Đề tài khóa luận đặt ra vấn đề tìm hiểu về trình thu thập thông tin trên web và bước đầu sẽ xây dựng một ứng dụng có khả năng tổng hợp thông tin tự động từ trang báo điện tử lớn là trang Dân trí (http://dantri.com.vn). Ứng dụng được viết bằng ngôn ngữ lập trình PHP tương tác với cơ sở dữ liệu mySQL và được xây dựng dựa trên các tiêu chí: tốc độ thu thập nhanh, cơ sở dữ liệu gọn nhẹ, đảm bảo tính toàn vẹn của tài liệu gốc. II Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 MỤC LỤC LỜI CẢM ƠN I MỞ ĐẦU 1 CHƯƠNG 1. TÌM HIỂU VỀ TRÌNH THU THẬP WEB 3 1.1. GIỚI THIỆU VỀ TRÌNH THU THẬP WEB 3 1.2. CÁCH XÂY DỰNG MỘT HẠ TẦNG THU THẬP 4 1.2.1. Frontier 6 1.2.2. Lược sử và kho lưu trữ trang 7 1.2.3. Cách lấy trang 8 1.2.3.1. Tiêu chuẩn loại trừ robot 8 1.2.4. Bóc tách trang 10 1.2.4.1. Tiêu chuẩn trích xuất URL 11 1.2.4.2. Mô hình thẻ HTML dạng cây 12 1.2.5. Trình thu thập đa luồng 13 1.3. CÁC CHIẾN LƯỢC THU THẬP DỮ LIỆU 15 1.3.1. Chiến lược thu thập dữ liệu theo chiều sâu 15 1.3.2. Chiến lược thu thập dữ liệu theo chiều rộng 16 1.3.3. Chiến lược thu thập dữ liệu theo ngẫu nhiên 17 1.3.4. Chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây thơ 17 1.4. ĐÁNH GIÁ CỦA TRÌNH THU THẬP 19 1.4.1. Độ quan trọng của trang web 20 1.4.2. Phân tích tổng quát 21 1.4.2.1. Thước đo độ chính xác 22 1.4.2.2. Thước đo độ hoàn chỉnh 22 2.2. CÁC CÔNG NGHỆ LIÊN QUAN 29 2.2.1. Ngôn ngữ lập trình PHP 30 2.2.1.2. Các hàm xử lý chuỗi 34 2.2.1.2.1. Tìm kiếm chuỗi trong chuỗi 34 III Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 2.2.3. Một số công nghệ và tiện ích khác 36 2.2.3.1. Add-ons firebug của firefox 36 2.2.3.2. Ajax 37 2.3. PHÂN TÍCH 37 2.3.1. Cấu trúc bài viết trong trang báo điện tử 38 2.3.2. Các cách thu thập bài viết 41 2.3.2.1. Cách làm truyền thống 41 2.3.2.1.1. Các bước thực hiện 41 2.3.2.1.2. Nhận xét 43 2.3.2.2. Cách làm mới 44 2.3.2.2.1. Các bước thực hiện 44 2.3.2.2.2. Nhận xét 45 2.4. THIẾT KẾ 45 2.4.1. Cấu trúc cơ sở dữ liệu 46 2.4.1.1. Danh sách các bảng 46 2.4.1.2. Chi tiết các bảng 46 2.4.2. Phần quản trị cơ sở dữ liệu 48 2.4.3. Phần giao diện chính trang web 48 3.1. CÁC KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 50 3.2. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 50 TÀI LIỆU THAM KHẢO 51 IV Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 BẢNG DANH MỤC CÁC HÌNH MINH HỌA Hình 1 : Một vòng thu thập web cơ bản 5 Hình 2: Mô hình cây tương ứng với một mã nguồn HTML 12 Hình 3: Một mô hình trình thu thập đa luồng 14 Hình 4: Hình minh họa về độ hoàn chỉnh và độ chính xác 21 Hình 5: Hình mình họa thu hồi mục tiêu 23 Hình 7: World wide web 26 Hình 8. Tương tác client và server 28 Hình 9: Add-ons firebug của trình duyệt firefox 37 Hình 10: Cấu trúc phần bài viết 38 Hình 11: Cấu trúc phần chuyên mục 39 Hình 12: Cấu trúc phần trang chủ 40 Hình 13: Giao diện phần quản trị cơ sở dữ liệu 48 Hình 14: Giao diện của trang web tổng hợp thông tin 49 V Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 VI Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 MỞ ĐẦU Ngày nay nhờ sự bùng nổ của công nghệ thông tin, lịch sử nhân loại đã bước sang một trang mới. Những thành tựu của ngành công nghệ thông tin là vô cùng to lớn, nó đã chi phối và làm thay đổi mọi mặt của đời sống xã hội, làm cho cuộc sống của con người văn minh, hiện đại hơn. Sự ra đời của internet chính là bước tiến vĩ đại của nhân loại, là yếu tố quan trọng bậc nhất chi phối cuộc sống của chúng ta ngày nay. Nhờ có internet thế giới trở nên ‘phẳng’ hơn, ở mọi nơi trên trái đất chúng ta đều có thể học tập và tìm kiếm thông tin. Theo guồng quay của cuộc sống, thế giới internet ngày càng rộng lớn và phong phú hơn. Cứ mỗi phút trôi qua có thêm hàng triệu trang web được sinh ra để làm giàu cho vốn tài nguyên tri thức của nhân loại. Nhưng cũng chính vì thế mà việc chọn lọc, tìm kiếm thông tin lại trở nên khó khăn hơn. Với kho dữ liệu đồ sộ như internet, vấn đề trích xuất và tổng hợp thông tin đã trở thành vấn đề thực sự cấp thiết hiện nay. Nếu giải quyết được vấn đề này chúng ta sẽ loại bỏ được một chướng ngại lớn trên con đường tổng hợp thông tin của nhân loại. Đề tài khóa luận đặt ra vấn đề tìm hiểu về trình thu thập thông tin trên web và bước đầu sẽ xây dựng một ứng dụng có khả năng tổng hợp thông tin tự động từ các trang báo điện tử lớn. Đề tài nếu thành công sẽ là bước đi không nhỏ giúp cho việc tổng hợp thông tin trở nên đơn giản hơn, giảm được nhiều chi phí công sức so với việc tổng hợp thủ công, và là tiền đề để xây dựng nên một hệ thống máy tìm kiếm, giống như google, cho người Việt Nam. Nội dung của khóa luận sẽ tập trung vào các mục tiêu chính sau: - Đưa ra được một cái nhìn tổng quát về trình thu thập web (web crawler) - Xây dựng một ứng dụng website tổng hợp thông tin có khả năng thu thập các bản tin từ các trang báo lớn như Dân trí. Để giải quyết được các mục tiêu này, khóa luận được chia thành ba chương lớn: Chương 1: Tìm hiểu về trình thu thập web Trong chương này, chúng ta sẽ lần lượt tìm hiểu các khái niệm cơ bản trong trình thu thập web. Phần lớn nội dung trong chương này sẽ đi sâu vào việc tìm hiểu các thành phần cấu thành nên một trình thu thập, các chiến lược thu thập dữ liệu, việc đánh giá của trình thu thập đối với trang web. Qua đó chúng ta sẽ có một bức tranh chung 1 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 về trình thu thập web, và có thể hiểu hơn về các giá trị thực tiễn mà nó mang lại trong đời sống của con người. Chương 2: Xây dựng ứng dụng website tổng hợp thông tin Phần đầu chương sẽ trình bày về các kiến thức nền tảng và các công nghệ liên quan, ở phần tiếp theo là các đánh giá phân tích và các giải pháp nhằm nâng cao hiệu suất của trình thu thập, phần cuối chương là việc hiện thực hóa ứng dụng thông qua việc xây dựng hệ thống cơ sở dữ liệu và thiết kế giao diện website. Cũng trong phần này tôi sẽ nêu ra hai cách thu thập thông tin. Một là cách làm phổ biến hiện nay tôi gọi là cách làm truyền thống, một là cách làm mới tôi tìm ra. Cách làm mới này tối ưu hơn và có thể giải quyết được các hạn chế trong cách làm truyền thống. Chương 3: Kết luận Phần kết luận cũng là phần cuối của khóa luận sẽ nhìn lại những điều đã làm được trong khóa luận này, nêu lên những vấn đề còn vướng mắc, từ đó đề ra hướng phát triển tiếp theo cho đề tài. 2 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 CHƯƠNG 1. TÌM HIỂU VỀ TRÌNH THU THẬP WEB 1.1. GIỚI THIỆU VỀ TRÌNH THU THẬP WEB Trình thu thập web (Web crawler) là một chương trình khai thác cấu trúc đồ thị của web di chuyển từ trang này qua trang khác. Thời kỳ đầu nó có những tên khá tượng hình như bọ web, rô-bốt, nhện và sâu, nhưng ngày nay tên gọi phổ biến nhất là vẫn là trình thu thập web [1]. Mặc dù vậy cụm từ ‘thu thập’ không lột tả được hết tốc độ của những chương trình này, vì chúng có tốc độ làm việc đáng kinh ngạc, có thể thu thập dữ liệu lên đến hàng chục ngàn trang trong vòng một vài phút. Từ thời kỳ đầu, một động lực quan trọng thúc đẩy quá trình phát triển của việc thiết kế trình thu thập web là lấy được nội dung các trang web và thêm chúng hoặc đường dẫn của chúng vào một kho lưu trữ trang – một kiểu kho lưu trữ có thể dùng để phục vụ cho các ứng dụng cụ thể trong công cụ tìm kiếm web (search engine). Các trình thu thập thường bắt đầu bằng cách chọn một số các đường dẫn (URL) ứng với các trang web sẽ ghé thăm đầu tiên, các trang này được gọi là các trang hạt giống. Khi ghé thăm một trang hạt giống, trình thu thập sẽ đọc nội dung trang web, lọc ra tất cả các siêu liên kết (hyperlink) có trong trang web đó và đưa các URL tương ứng với chúng vào một danh sách gọi là biên giới (frontier). Dựa vào danh sách này, trình thu thập tiếp tục quá trình duyệt đệ quy để ghé thăm tất cả các URL chưa được duyệt. Quá trình này chỉ dừng lại khi trình thu thập đã thu thập đủ số trang yêu cầu hoặc frontier là rỗng, tức là không còn URL để duyệt. Tuy mô tả này có vẻ đơn giản nhưng đằng sau chúng là khá nhiều vấn đề hóc búa liên quan đến kết nối mạng, bẫy nhện, tiêu chuẩn trích xuất URL, chuẩn hóa các trang HTML, bóc tách nội dung trang HTML vv Ở phần sau của khóa luận tôi sẽ lần lượt trình bày đến các vấn đề này và hướng giải quyết của chúng. Sau khi đã có được một danh sách các URL dùng cho việc thu thập, ta sẽ thực hiện quá trình lấy trang. Tất cả các trang được lấy một lần và được lưu vào một kho lưu trữ giống như cơ sở dữ liệu của công cụ tìm kiếm, đến đây không cần thu thập thêm. Tuy nhiên web là một thực thể năng động với các không gian con liên tục phát triển và thay đổi nhanh một cách chóng mặt, vì thế thông tin phải liên tục được thu thập để giúp các ứng dụng luôn cập nhật, ví dụ như bổ sung các trang mới loại bỏ các trang đã bị xóa, di chuyển hoặc cập nhật các trang bị sửa đổi. 3 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 Các trang web chủ yếu được viết bằng các ngôn ngữ đánh dấu như HTML, XHTML và được nhắm đến đối tượng sử dụng là con người chứ không phải máy tính. Các trang web lại chứa đựng nhiều thông tin có ích mà con người có thể muốn thu thập và lưu trữ lại, chính vì thế mà cần phải có những kỹ thuật bóc tách và trích xuất thông tin theo một cơ chế tự động. Các kỹ thuật bóc tách dữ liệu (parsing) có thể ở mức đơn giản như việc bóc tách các siêu liên kết, hoặc ở mức phức tạp hơn một chút là bóc tách bất kỳ phần nội dung nào trong một trang web. Về bản chất, quá trình thu thập web chính là quá trình duyệt đệ quy một đồ thị. Các web được xem như một đồ thị với các trang là các đỉnh (node) và các siêu liên kết là các cạnh. Quá trình lấy trang và trích xuất các liên kết bên trong nó tương tự như việc mở rộng tìm kiếm một đỉnh trong đồ thị. Việc tìm kiếm này là khác nhau trong các trình thu thập sử dụng chiến lược tìm kiếm khác nhau. Phần sau của khóa luận tôi sẽ trình bày sâu hơn về các chiến lược tìm kiếm và đưa ra các số liệu thống kê để so sánh hiệu suất của các chiến lược tìm kiếm này từ đó rút ra đánh giá về hiệu suất của các trình thu thập. Trình thu thập web là thành phần đầu tiên trong toàn bộ hệ thống search engine. Mục đích chung của các hệ thống search engine là số lượng trang web đầu vào đạt giá trị cao nhất có thể, trong đó trình thu thập web làm công việc chính là duy trì cơ sở dữ liệu được đánh chỉ mục, trả về giá trị của bộ thu thập và bộ lập chỉ mục cho hàng triệu truy vấn nhận được từ người dùng. Các trang được đánh chỉ mục dựa trên các thuật toán ưu tiên hoặc dựa vào các phương pháp dựa trên kinh nghiệm (heuristic). Ngoài ra, chúng ta có thể sử dụng trình thu thập web để xây dựng các phần mềm tập trung thông tin, các trang web tổng hợp thông tin, dựa trên cơ chế tự động tìm và phát hiện tài nguyên. 1.2. CÁCH XÂY DỰNG MỘT HẠ TẦNG THU THẬP Hình 1 cho ta thấy một chu trình của một trình thu thập web cơ bản [1] 4 [...]... là duyệt web Quá trình này cho phép người dùng có thể lướt các trang web để lấy thông tin Tuy nhiên độ chính xác và chứng thực của thông tin không được đảm bảo 25 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 Hình 7: World wide web World wide web có thể được phân loại thành ba loại: các trang web tĩnh, các trang web động và các trang web tích cực [4] - Trang web tĩnh:... trang tương ứng với URL thông qua HTTP Bóc tách trang vừa lấy để trích xuất ra các URL và các nội dung thông tin cụ thể Cuối cùng là thêm các URL chưa thăm vào frontier Trước khi các URL được thêm vào frontier chúng có thể được đánh chỉ mục dựa trên số lượng truy cập vào trang web ứng với URL Quá trình thu thập sẽ chấm dứt 5 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010... đổi khi chương trình tương ứng thực thi Có thể coi các trang web tích cực là các trang web động về nội dung Sau đây là bảng so sánh các loại world wide web: 26 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 Loại web Ưu điểm Nhược điểm Trang web tĩnh Tính đơn giản, tiện dụng và tin cậy Sau khi được tạo ra trang web tĩnh có một định dạng cố định và bất biến Trình duyệt có... đã thu thập bởi mỗi trình thu thập trên mỗi chủ đề (vì thế việc đánh giá liên quan đến hàng triệu trang) 23 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 Hình 6: So sánh giữa thuật toán breadth-first và naive best-first: (a) Theo độ chính xác trung bình (b) Theo độ thu hồi mục tiêu trung bình 24 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010... dựa vào đó để phân tích xem thông tin trên những tài liệu thu thập được có thực sự hoàn chỉnh (recall) và chính xác (precision) với truy vấn người dùng yêu cầu không Hình dưới đây minh họa cho độ hoàn chỉnh và độ chính xác của thông tin thu được: Hình 4: Hình minh họa về độ hoàn chỉnh và độ chính xác Độ chính xác (precision, [6]) và độ hoàn chỉnh (recall, [6]) trong thu thập thông tin phụ thuộc vào... thu thập, có thể giúp cho việc tăng tốc độ hợp lý và sử dụng hiệu quả băng thông sẵn có Hình 3 chỉ ra một phiên bản đa luồng [1] của trình thu thập cơ bản trong hình 1: 13 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 Hình 3: Một mô hình trình thu thập đa luồng Mô hình đa luồng là mô hình làm việc gồm nhiều luồng trên cùng một frontier với mỗi luồng là một vòng thu thập. .. bản Chương trình này sẽ nhận thông tin tại ô địa chỉ do người sử dụng yêu cầu (thông tin trong ô địa chỉ được gọi là tên miền (domain name)), rồi sau đó chương trình sẽ tự động gửi thông tin đến máy chủ (web server) và hiển thị trên màn hình máy tính của người xem Người dùng có thể theo các liên kết siêu văn bản trên mỗi trang web để nối với các tài liệu khác hoặc gửi thông tin phản hồi theo máy chủ trong... ứng dụng ở phía server sinh ra và chuyển cho trình duyệt khi có yêu cầu Chi phí cài đặt tương đối cao và không linh hoạt khi phải hiển thị thông tin hay thay đổi Giống như web tĩnh, một khi thông điệp được server sinh ra và chuyển cho trình duyệt thì nội dung thông điệp là cố định Nếu mỗi lần thông tin thay đổi thì trình duyệt phải cập nhật lại để lấy nội dung mới Trang web tích Ưu điểm chính của web. .. các tập tin mà không cần truy cập bằng trình thu thập Để làm được điều này, 8 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 trình thu thập (robot) duy trì một tập tin có tên là robot.txt [13] trong thư mục gốc của các máy chủ web (ví dụ như http://coltech.vnu.edu.vn/robot.txt) Tệp tin này chứa hoàn toàn nội dung văn bản text (không phải HTML) Robot.txt cho phép Webmaster... dụ các thẻ, và Ngoài ra khi lồng nhau, các phần tử HTML cũng không cần thiết phải lồng nhau theo đúng thứ tự (tức là thẻ nào mở trước thì phải đóng sau) 2.2 CÁC CÔNG NGHỆ LIÊN QUAN 29 Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 Phần tiếp theo tôi sẽ trình bày về các công nghệ sẽ sử dụng để xây dựng ứng dụng website tổng hợp thông tin 2.2.1 Ngôn ngữ lập . của trang web tổng hợp thông tin 49 V Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 VI Tìm hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 MỞ. tin một cách tự động và trình thu thập web đã ra đời. Đề tài khóa luận đặt ra vấn đề tìm hiểu về trình thu thập thông tin trên web và bước đầu sẽ xây dựng một ứng dụng có khả năng tổng hợp thông. hiểu về trình thu thập web và xây dựng trang web tổng hợp thông tin 2010 CHƯƠNG 1. TÌM HIỂU VỀ TRÌNH THU THẬP WEB 1.1. GIỚI THIỆU VỀ TRÌNH THU THẬP WEB Trình thu thập web (Web crawler) là một