Luận văn Xây dựng ứng dụng thu thập dữ liệu tự động từ các Website

Với sự bùng nổ về công nghệ thông tin những năm gần đây, đặc biệt là sự phát triển mạnh mẽ như vũ bão của Internet, cuộc sống của con người đã càng ngày càng trở nên phong phú và đa dạng hơn. Kho tàng tri thức của Internet đã làm thay đổi đáng kể nhiều lĩnh vực, từ học tập, nghiên cứu cho đến kinh doanh và thương mại. Tuy nhiên con người vẫn không dừng lại, họ luôn có những khát khao tìm tòi và phát triển, đặc biệt là đối với chiếc máy tính. Chiếc máy tính cá nhân đã được ra đời để trợ giúp cho con người, và họ vẫn luôn tìm cách làm cho nó có thể hỗ trợ được cho con người nhiều hơn nữa, thậm chí là làm thay cho con người. Trong thực tế hiện nay, lượng thông tin trên Internet càng ngày càng khổng lồ, điều này khiến việc sử dụng World Wide Web để khai thác thông tin hữu ích, phục vụ cho các mục đích cá nhân luôn có những khó khăn nhất định của nó. Nhất là đối với những mục đích đòi hỏi ph ải có sự thu thập thông tin với khối lượng lớn trên Web, chẳng hạn một công ty quảng cáo muốn thu thập thật nhiều thông tin liên lạc của các doanh nghiệp trong nhiều lĩnh vực để gửi thư quảng cáo. Những công việc như thế này nếu được thực hiện thủ công bằng sức người thì sẽ mất rất nhiều thời gian, công sức, và chúng cũng khá tẻ nhạt do tính chất phải lặp đi lặp một vài thao tác của việc thu thập dữ liệu.

pdf102 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2222 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng ứng dụng thu thập dữ liệu tự động từ các Website, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC Xây dựng ứng dụng thu thập dữ liệu tự động từ các Website HỘI ĐỒNG: TS. Võ Thị Ngọc Châu GVHD: ThS. Đặng Trần Trí GVPB: ThS. Nguyễn Văn Đoàn ---o0o--- SVTH 1: Nguyễn Trung Kiên 50501352 SVTH 2: Lê Quang Minh 50501668 TP. HỒ CHÍ MINH, 1/2009 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 2 LỜI CAM ĐOAN “Chúng tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính chúng tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác”. Nguyễn Trung Kiên Lê Quang Minh Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 3 LỜI CẢM ƠN Sau khoảng thời gian được học tập và rèn luyện tại trường Đại Học Bách Khoa TP.HCM, dưới sự chỉ bảo tận tình của các thầy cô trong các phòng khoa, nay chúng em đã gần mãn khoá học, đang trong giai đoạn hoàn thành luận văn tốt nghiệp và sắp sửa trở thành một người kỹ sư công nghệ thông tin có thể góp sức xây dựng cho sự phát triển xã hội, đất nước. Để được như ngày hôm nay chúng em vô cùng biết ơn tất cả các thầy cô trong Khoa Khoa Học và Kỹ Thuật Máy Tính đã tận tình giảng dạy, hướng dẫn, truyền đạt những kiến thức, kinh nghiệm quý báu cho chúng em trong khoảng thời gian được học tập, rèn luyện tại trường. Thầy ThS. Đặng Trần Trí, người đã tận tình hướng dẫn, định hướng, giúp đỡ và chỉ dạy chúng em rất nhiều trong suốt quá trình thực hiện luận văn tốt nghiệp. Các anh chị em sinh viên các khoá đã cùng chúng em học tập và chia sẻ kiến thức tiếp thu trong quá trình theo học tại trường. Đồng thời chúng em cũng xin gửi lời cảm ơn đến cha mẹ, anh chị, bạn bè những người luôn đứng bên cạnh chúng em để động viên, an ủi, ủng hộ về vật chất lẫn tinh thần trong suốt khoảng thời gian qua. Với lòng biết ơn chân thành, chúng em xin gởi lời chúc sức khoẻ và những gì tốt đẹp nhất đến các thầy cô trong khoa, trong nhà trường, những bậc cha mẹ, anh chị đáng kính và toàn thể các bạn bè hiện đang còn học hoặc không còn học tại trường Đại Học Bách Khoa TP.HCM.. Nguyễn Trung Kiên và Lê Quang Minh Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 4 TÓM TẮT LUẬN VĂN Với sự bùng nổ về công nghệ thông tin những năm gần đây, đặc biệt là sự phát triển mạnh mẽ như vũ bão của Internet, cuộc sống của con người đã càng ngày càng trở nên phong phú và đa dạng hơn. Kho tàng tri thức của Internet đã làm thay đổi đáng kể nhiều lĩnh vực, từ học tập, nghiên cứu cho đến kinh doanh và thương mại. Tuy nhiên con người vẫn không dừng lại, họ luôn có những khát khao tìm tòi và phát triển, đặc biệt là đối với chiếc máy tính. Chiếc máy tính cá nhân đã được ra đời để trợ giúp cho con người, và họ vẫn luôn tìm cách làm cho nó có thể hỗ trợ được cho con người nhiều hơn nữa, thậm chí là làm thay cho con người. Trong thực tế hiện nay, lượng thông tin trên Internet càng ngày càng khổng lồ, điều này khiến việc sử dụng World Wide Web để khai thác thông tin hữu ích, phục vụ cho các mục đích cá nhân luôn có những khó khăn nhất định của nó. Nhất là đối với những mục đích đòi hỏi phải có sự thu thập thông tin với khối lượng lớn trên Web, chẳng hạn một công ty quảng cáo muốn thu thập thật nhiều thông tin liên lạc của các doanh nghiệp trong nhiều lĩnh vực để gửi thư quảng cáo. Những công việc như thế này nếu được thực hiện thủ công bằng sức người thì sẽ mất rất nhiều thời gian, công sức, và chúng cũng khá tẻ nhạt do tính chất phải lặp đi lặp một vài thao tác của việc thu thập dữ liệu. Đề tài Luận Văn Tốt Nghiệp này sẽ cố gắng giải quyết vấn đề nêu trên, bằng cách xây dựng một công cụ hỗ trợ có khả năng giúp con người trong những bài toán thu thập dữ liệu, một cách tự động. Công cụ sẽ cố gắng làm thay cho con người ở một số công đoạn, giúp giảm thời gian và sức lực của con người trong việc thu thập dữ liệu từ các website. Ý tưởng này nếu thành công sẽ đem lại được rất nhiều lợi ích vì nhu cầu thu thập dữ liệu trên web hiện nay đã trở thành một nhu cầu rất phổ biến và thiết thực. Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 5 MỤC LỤC 1 Giới thiệu ..................................................................................................................... 11 1.1 Mở đầu ................................................................................................................. 11 1.2 Yêu cầu và mục tiêu của đề tài .............................................................................. 11 1.2.1 Yêu cầu......................................................................................................... 11 1.2.2 Mục tiêu ....................................................................................................... 12 1.3 Bố cục báo cáo ..................................................................................................... 12 2 Tìm hiểu và phân tích sơ bộ.......................................................................................... 13 2.1 Tìm hiểu các kiến thức tổng quan ......................................................................... 13 2.1.1 World Wide Web .......................................................................................... 13 2.1.2 Web Crawler ................................................................................................. 14 2.1.3 Web Scraper ................................................................................................. 15 2.1.4 Phân loại Web ............................................................................................... 16 2.1.4.1 Phân loại dựa vào sự thể hiện của tính động .............................................. 16 2.1.4.2 Phân loại dựa vào cách thức tạo ra tính động ............................................. 17 2.1.4.3 Khả năng của các web crawler .................................................................. 18 2.2 Phân tích sơ bộ ..................................................................................................... 18 3 Các kiến thức nền tảng và các công nghệ liên quan....................................................... 22 3.1 HTML .................................................................................................................. 22 3.2 XML .................................................................................................................... 23 3.3 XHTML ............................................................................................................... 24 3.3.1 Tính chuẩn của một tài liệu XML (well-formed) ........................................... 24 3.3.2 Tên các phần tử và tên các thuộc tính của phần tử phải ở dạng chữ in thường 24 3.3.3 Các thẻ không rỗng bắt buộc phải có thẻ đóng .............................................. 24 3.3.4 Các thuộc tính luôn phải ghi rõ giá trị ........................................................... 25 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 6 3.3.5 Các phần tử rỗng ........................................................................................... 25 3.4 XPath ................................................................................................................... 26 3.4.1 Cú pháp và ngữ nghĩa ................................................................................... 26 3.4.1.1 Cú pháp rút gọn ........................................................................................ 26 3.4.1.2 Cú pháp đầy đủ ......................................................................................... 27 3.4.2 Axis specifier ................................................................................................ 27 3.4.3 Node test ....................................................................................................... 28 3.4.4 Predicate ....................................................................................................... 28 3.4.5 Các hàm và toán tử ....................................................................................... 29 3.5 Các công nghệ và thư viện hỗ trợ khác ................................................................. 29 3.5.1 HTML Tidy .................................................................................................. 29 3.5.2 cURL ............................................................................................................ 31 4 Phân tích ...................................................................................................................... 33 4.1 Một ví dụ tổng quát của bài toán thu thập dữ liệu .................................................. 33 4.2 Phân loại các trang Web dựa vào cách thức chuyển trang ..................................... 36 4.3 Phân tích và các giải pháp ..................................................................................... 37 5 Thiết kế ........................................................................................................................ 41 5.1 Sơ đồ Use Case..................................................................................................... 41 5.2 Kiến trúc tổng quan .............................................................................................. 42 5.3 Thành phần FRONT ............................................................................................. 44 5.3.1 Mô hình MVC .............................................................................................. 44 5.3.2 Bot Manager ................................................................................................. 46 5.3.2.1 Các trạng thái của Bot ............................................................................... 46 5.3.2.2 Các lệnh tạo mới, xóa, sửa thông tin Robot ............................................... 48 5.4 Thành phần CORE ............................................................................................... 50 5.4.1 Crawler ......................................................................................................... 51 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 7 5.4.2 Extractor ....................................................................................................... 53 5.4.3 Các Helper .................................................................................................... 54 6 Hiện thực ..................................................................................................................... 56 6.1 Môi trường phát triển ứng dụng ............................................................................ 56 6.2 Giao diện sử dụng của WDE ................................................................................. 57 6.3 Đặc tả dữ liệu đầu vào bằng XML ........................................................................ 60 6.3.1 Đặc tả thông tin chung cho Bot ..................................................................... 60 6.3.2 Đặc tả các trang ............................................................................................ 61 6.3.3 Đặc tả bảng cơ sở dữ liệu .............................................................................. 66 6.4 Cấu trúc cơ sở dữ liệu ........................................................................................... 67 6.4.1 Danh sách các bảng ....................................................................................... 67 6.4.2 Chi tiết các bảng ........................................................................................... 67 6.5 Front ..................................................................................................................... 70 6.5.1 Bot Manager ................................................................................................. 70 6.6 Core ..................................................................................................................... 72 6.6.1 Robot ............................................................................................................ 73 6.6.1.1 Quản lý tiến trình của Robot ..................................................................... 73 6.6.1.2 Thực hiện quy trình thu thập dữ liệu .......................................................... 75 6.6.2 Crawler ......................................................................................................... 77 6.6.2.1 Simple Crawler: ........................................................................................ 78 6.6.2.2 Advanced Crawler: ................................................................................... 79 6.6.2.2.1 wdeBrowser ........................................................................................ 79 6.6.2.2.2 Ví dụ ................................................................................................... 81 6.6.3 Extractor ....................................................................................................... 82 6.6.3.1 Expression Extractor ................................................................................. 82 6.6.3.2 XPath Extractor......................................................................................... 83 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 8 6.6.3.3 Selector Extractor...................................................................................... 83 7 Sử dụng và đánh giá ..................................................................................................... 85 7.1 Các bước cơ bản để sử dụng ứng dụng .................................................................. 85 7.1.1 Xác định trang web cần thu thập dữ liệu........................................................ 87 7.1.2 Xác định kiểu lấy dữ liệu (crawler engine) cho Robot ................................... 87 7.1.3 Xác định các tùy chọn cho Robot .................................................................. 87 7.1.4 Xây dựng cấu hình cụ thể cho từng trang con ................................................ 88 7.1.5 Xác định cấu trúc cơ sở dữ liệu lưu trữ: ......................................................... 89 7.2 Các ví dụ cụ thể từ đơn giản đến phức tạp ............................................................. 90 7.2.1 Ví dụ 1 .......................................................................................................... 90 7.2.2 Ví dụ 2: ......................................................................................................... 92 7.2.3 Ví dụ 3 .......................................................................................................... 95 8 Đánh giá chung ............................................................................................................ 98 8.1 Các kết quả đạt được ............................................................................................ 98 8.2 Các hạn chế của ứng dụng .................................................................................... 99 8.3 Hướng phát triển ................................................................................................. 100 9 Tổng kết ..................................................................................................................... 101 10 Tài liệu tham khảo .................................................................................................. 102 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 9 MỤC LỤC HÌNH ẢNH Hình 2-1. World Wide Web ................................................................................................. 13 Hình 2-2. Sơ đồ hoạt động của một web crawler đơn giản .................................................... 14 Hình 2-3. Phân loại web cùng khả năng của các web crawler ............................................... 18 Hình 2-4. Phạm vi của thành phần crawler của ứng dụng trong đề tài ................................... 20 Hình 4-1. Một trang web danh bạ ......................................................................................... 34 Hình 5-1. Sơ đồ Use Case của ứng dụng WDE ..................................................................... 41 Hình 5-2. Kiến trúc tổng quan của WDE .............................................................................. 43 Hình 5-3. Kiến trúc của thành phần FRONT ........................................................................ 44 Hình 5-4. Mô hình MVC ...................................................................................................... 45 Hình 5-5. Sơ đồ các trạng thái của Bot ................................................................................. 46 Hình 5-6. Quá trình tạo mới một Bot .................................................................................... 48 Hình 5-7. Quá trình chỉnh sửa một Bot ................................................................................. 49 Hình 5-8. Quá trình xóa một Bot .......................................................................................... 49 Hình 5-9. Quá trình nhận dữ liệu đặc tả đầu vào XML ......................................................... 50 Hình 5-10. Kiến trúc thành phần CORE ............................................................................... 51 Hình 5-11. Quá trình hoạt động tổng quát của ROBOT ........................................................ 52 Hình 5-12. Crawler gồm có 2 crawler engine là Simple và Advanced................................... 53 Hình 5-13. Extractor gồm có 3 Extractor con ....................................................................... 54 Hình 6-1. Giao diện chính của WDE .................................................................................... 57 Hình 6-2. Giao diện nhập / chỉnh sửa dữ liệu đặc tả đầu vào XML ....................................... 58 Hình 6-3. Giao diện quản lý hoạt động Bot và xem dữ liệu trích xuất được .......................... 59 Hình 6-4. Sơ đồ tuần tự của tác vụ start Bot ......................................................................... 70 Hình 6-5. Sơ đồ tuần tự của tác vụ resume Bot ..................................................................... 70 Hình 6-6. Sơ đồ tuần tự của tác vụ pause Bot ....................................................................... 71 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động Nguyen Trung Kien Trang 10 Hình 6-7. Sơ đồ tuần tự của tác vụ stop Bot ......................................................................... 71 Hình 6-8. Sơ đồ class giữa Robot - Crawler - Extractor ........................................................ 72 Hình 6-9. Sơ đồ tuần tự thể hiện quá trình hoạt động tổng quát của Robot ............................ 73 Hình 6-10. Quá trình thu thập dữ liệu tổng quát.................................................................... 76 Hình 6-11. Sơ đồ class của các Crawler................................................................................ 77 Hình 6-12. Sơ đồ tuần tự hoạt động của Simple Crawler ...................................................... 78 Hình 6-13. Sơ đồ tuần tự hoạt động của Advanced Crawler .................................................. 79 Hình 6-14. Sơ đồ class của các Extractor .............................................................................. 82 Luận văn tốt nghiệ