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

100 2.1K 31
Xây dựng ứng dụng thu thập  dữ liệu tự động từ các Website

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

ĐẠ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 2 - HỆ THỐNG THÔNG TIN Chủ tịch: 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 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website TP. HỒ CHÍ MINH, 1/2010 Trang 2 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website 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 Trang 3 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website 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 Trang 4 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website 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. Trang 5 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website MỤC LỤC 1 Giới thiệu 12 1.1 Mở đầu .12 1.2 Yêu cầu và mục tiêu của đề tài 12 1.2.1 Yêu cầu .12 1.2.2 Mục tiêu 13 1.3 Bố cục báo cáo .13 2 Tìm hiểu và phân tích sơ bộ .14 2.1 Tìm hiểu các kiến thức tổng quan .14 2.1.1 World Wide Web 14 2.1.2 Web Crawler .15 2.1.3 Web Scraper .16 2.1.4 Phân loại Web .17 2.1.4.1 Phân loại dựa vào sự thể hiện của tính động 17 2.1.4.2 Phân loại dựa vào cách thức tạo ra tính động .18 2.1.4.3 Khả năng của các web crawler .19 2.2 Phân tích sơ bộ 19 3 Các kiến thức nền tảng và các công nghệ liên quan 23 3.1 HTML 23 3.2 XML .24 3.3 XHTML .25 3.3.1 Tính chuẩn của một tài liệu XML (well-formed) 25 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 25 3.3.3 Các thẻ không rỗng bắt buộc phải có thẻ đóng .25 3.3.4 Các thuộc tính luôn phải ghi rõ giá trị .26 Trang 6 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website 3.3.5 Các phần tử rỗng 26 3.4 XPath .27 3.4.1 Cú pháp và ngữ nghĩa .27 3.4.1.1 Cú pháp rút gọn .27 3.4.1.2 Cú pháp đầy đủ 28 3.4.2 Axis specifier 28 3.4.3 Node test .29 3.4.4 Predicate .29 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 .30 3.5.1 HTML Tidy 30 3.5.2 cURL .32 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 Trang 7 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website 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 59 6.3.1 Đặc tả thông tin chung cho Bot 59 6.3.2 Đặc tả các trang 60 6.3.3 Đặc tả bảng cơ sở dữ liệu .65 6.4 Cấu trúc cơ sở dữ liệu 66 6.4.1 Danh sách các bảng 66 6.4.2 Chi tiết các bảng .66 6.5 Front .69 6.5.1 Bot Manager .69 6.6 Core 71 6.6.1 Robot .72 6.6.1.1 Quản lý tiến trình của Robot .72 6.6.1.2 Thực hiện quy trình thu thập dữ liệu 74 6.6.2 Crawler .75 6.6.2.1 Simple Crawler: 76 6.6.2.2 Advanced Crawler: 77 6.6.2.2.1 wdeBrowser 77 6.6.3 Extractor .80 6.6.3.1 Expression Extractor .80 6.6.3.2 XPath Extractor .81 6.6.3.3 Selector Extractor 81 Trang 8 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website 7 Sử dụng và đánh giá .83 7.1 Các bước cơ bản để sử dụng ứng dụng .83 7.1.1 Xác định trang web cần thu thập dữ liệu .85 7.1.2 Xác định kiểu lấy dữ liệu (crawler engine) cho Robot 85 7.1.3 Xác định các tùy chọn cho Robot 85 7.1.4 Xây dựng cấu hình cụ thể cho từng trang con .86 7.1.5 Xác định cấu trúc cơ sở dữ liệu lưu trữ: 87 7.2 Cácdụ cụ thể từ đơn giản đến phức tạp .88 7.2.1 Ví dụ 1 88 7.2.2 Ví dụ 2: 90 7.2.3 Ví dụ 3 93 8 Đánh giá chung .96 8.1 Các kết quả đạt được .96 8.2 Các hạn chế của ứng dụng .97 8.3 Hướng phát triển 98 9 Tổng kết 99 10 Tài liệu tham khảo 100 Trang 9 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website MỤC LỤC HÌNH ẢNH Hình 2-1. World Wide Web 14 Hình 2-2. Sơ đồ hoạt động của một web crawler đơn giản 15 Hình 2-3. Phân loại web cùng khả năng của các web crawler .19 Hình 2-4. Phạm vi của thành phần crawler của ứng dụng trong đề tài 21 Hình 4-5. Một trang web danh bạ 34 Hình 5-6. Sơ đồ Use Case của ứng dụng WDE 41 Hình 5-7. Kiến trúc tổng quan của WDE 43 Hình 5-8. Kiến trúc của thành phần FRONT 44 Hình 5-9. Mô hình MVC .45 Hình 5-10. Sơ đồ các trạng thái của Bot .46 Hình 5-11. Quá trình tạo mới một Bot 48 Hình 5-12. Quá trình chỉnh sửa một Bot .49 Hình 5-13. Quá trình xóa một Bot .49 Hình 5-14. Quá trình nhận dữ liệu đặc tả đầu vào XML 50 Hình 5-15. Kiến trúc thành phần CORE .51 Hình 5-16. Quá trình hoạt động tổng quát của ROBOT .52 Hình 5-17. Crawler gồm có 2 crawler engine là Simple và Advanced 53 Hình 5-18. Extractor gồm có 3 Extractor con .54 Hình 6-19. Giao diện chính của WDE 57 Hình 6-20. Giao diện nhập / chỉnh sửa dữ liệu đặc tả đầu vào XML .57 Hình 6-21. Giao diện quản lý hoạt động Bot và xem dữ liệu trích xuất được .58 Hình 6-22. Sơ đồ cấu trúc cơ sở dữ liệu của chương trình .66 Hình 6-23. Sơ đồ tuần tự của tác vụ start Bot .69 Hình 6-24. Sơ đồ tuần tự của tác vụ resume Bot 69 Trang 10 [...]... Lượng dữ liệu này nếu thu thập bằng tay thì phải mất rất nhiều thời gian và công sức Do đó, trong đề tài này, sinh viên sẽ tìm hiểu về các kỹ thu t thu thập dữ liệu trên web một cách tự động và hiện thực một giải pháp cụ thể để thu thập chúng Trang 12 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website Các nhiệm vụ: • Tìm hiểu về các kỹ thu t thu thập dữ liệu tự động từ các website. .. người, một cách tự động và hiệu quả, và đó cũng chính là mục tiêu của đề tài Luận Văn Tốt Nghiệp này 1.2 Yêu cầu và mục tiêu của đề tài 1.2.1 Yêu cầu Đề tài: Xây dựng ứng dụng thu thập dữ liệu tự động từ các website Con người có nhu cầu thu thập một khối lượng lớn dữ liệu từ các website để phục vụ cho mục đích của mình (chẳng hạn thu thập dữ liệu về các nhà cung cấp sản phẩm thời trang trên website Trang... tự động từ các website • Hiện thực một kỹ thu t để thu thập dữ liệu trên một website cụ thể 1.2.2 Mục tiêu Xây dựng được một ứng dụng thu thập dữ liệu tự động từ các website Ứng dụng phải có khả năng mở rộng, tùy biến được để có thể sử dụng với nhiều website khác nhau 1.3 Bố cục báo cáo Phần 1: Giới thiệu đề tài, yêu cầu và mục tiêu của đề tài Phần 2: Tìm hiểu các kiến thức nền tảng và phân tích sơ bộ... crawler của các search engine (crawl phần Web nổi để đánh index), như vậy ứng dụng phải hỗ trợ được cả (một) phần Web ẩn Vì phải phục vụ cho các mục đích cụ thể nên ứng dụng cũng cần được “dẫn đường” bởi người sử dụng Trang 20 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website Các đặc điểm trên dẫn đến hình vẽ sau, thể hiện những phần Web mà thành phần crawler của ứng dụng có... tài đặt ra Phần 3: Tìm hiểu các công nghệ liên quan, các kiến thức cần thiết để có thể xây dựng và phát triển ứng dụng của đề tài Phần 4: Phân tích chính Phần 5: Thiết kế ứng dụng, kiến trúc các thành phần của ứng dụng Phần 6: Hiện thực ứng dụng, các kỹ thu t sử dụng, các lưu đồ giải thu t, mã giả Phần 7: Sử dụng, thử nghiệm thực tế và các đánh giá về kết quả thu được Phần 8: Các hạn chế và hướng phát... web có cấu trúc khác nhau một cách tự động Ưu điểm của hướng tiếp cận này là tính tự động Trang 21 Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu tự động từ các website cao, có thể chạy được trên nhiều website khác nhau (cùng lĩnh vực) một cách tự động Tuy nhiên các công cụ kiểu này thường chỉ có thể sử dụng cho các lĩnh vực cụ thể và phổ biến (domain-specific), chẳng hạn như lĩnh vực tin tức... liên kết từ trang này đến trang kia, đây chính là các phần tử thể hiện các liên kết href=”http://www.hcmut.edu.vn/”>ĐHBK hyperlink (ví dụ

Ngày đăng: 26/04/2013, 15:43

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan