Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
1,45 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN BÀI TẬP NHÓM ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG WEBCRAWLER LỌC TIN TỰ ĐỘNG DỮ LIỆU Mục lục Mở đầu Với bùng nổ công nghệ thông tin năm gần đây, đặc biệt phát triển mạnh mẽ vũ bão Internet, sống người ngày trở nên phong phú đa dạng Kho tàng tri thức Internet làm thay đổi đáng kể nhiều lĩnh vực, từ học tập, nghiên cứu kinh doanh thương mại Tuy nhiên người không dừng lại, họ ln có khát khao tìm tịi phát triển, đặc biệt máy tính Chiếc máy tính cá nhân đời để trợ giúp cho người, họ tìm cách làm cho hỗ trợ cho người nhiều nữa, chí làm thay cho người Trong thực tế nay, lượng thông tin Internet ngày khổng lồ, điều khiến việc sử dụng World Wide Web để khai thác thơng tin hữu ích, phục vụ cho mục đích cá nhân ln có khó khăn định Nhất mục đích địi hỏi phải có thu thập thơng tin với khối lượng lớn Web, chẳng hạn công ty quảng cáo muốn thu thập thật nhiều thông tin liên lạc doanh nghiệp nhiều lĩnh vực để gửi thư quảng cáo Những công việc thực thủ cơng sức người nhiều thời gian, công sức, chúng tẻ nhạt tính chất phải lặp lặp vài thao tác việc thu thập liệu Vậy nên ta cần cơng cụ hỗ trợ người việc tìm kiếm liệu đề tài tiểu luận bọn em xây dựng ứng dụng webcrawler lọc tin tự động liệu Chương I: WebCrawler 1.Trình thu thập Web tự động – Web Crawler Đầu tiên chúng cần phải biết Web Crawler gì? Đúng tên gọi – thu thập liệu tự động, hay gọi Web Crawler Có thể hiểu nơm na Web Crawler chương trình máy tính duyệt web cách tự động theo phương thức xác định trước, tự động thu thập cho ta thông tin mong muốn Web Crawler mô tả lại hoạt động thu thập thông tin người qua trang Web thơng tin điện tử Ví dụ muốn thu thập thơng tin trang Web bước cần làm là: duyệt Web từ trang sang trang khác, tìm kiếm thơng tin quan tâm, ghi lại dùng cách để lưu trữ Web Crawler tương tự vậy, nhiên việc thu thập diễn nhanh hơn, lượng thông tin thu thập nhiều quan trọng Và quan trọng nhất, sử dụng Web Crawler, người tiết kiệm khoảng thời gian phải tìm kiếm thu thập thơng tin thủ cơng Vì chương trình nên trình “duyệt web” Web Crawler khơng hồn tồn giống với q trình duyệt web người (Web Crawler phải sử dụng phương thức dựa HTTP trực tiếp khơng thơng qua trình duyệt người) Một Web Crawler bao gồm: Seeds, Frontier, phận duyệt Web tải nội dung trang Web sở liệu để lưu trữ thông tin thu thập 2.Hạt giống – Seeds Giới hạn thu thập – Frontier Một Web Crawler bắt đầu với danh sách URL để duyệt, URL gọi hạt giống Khi Crawler duyệt URL này, xác định tất liên kết (URL) có trang Web thêm chúng vào danh sách để duyệt, hiểu danh sách giới hạn thu thập, Crawler duyệt URL có danh sách Ví dụ cụ thể, từ hạt giống trang Web đọc báo ‘vietnamnet’ URL sau ‘https://vietnamnet.vn/’ Web Crawler tìm kiếm tất liên kết(URL) có trang Web thêm vào danh sách ví dụ trang có liên kết tới chuyên mục khác như: • https://vietnamnet.vn/the-gioi • https://vietnamnet.vn/kinh-doanh • https://vietnamnet.vn/giai-tri Danh sách Frontier gồm liên kết Sau Web Crawler lại tiếp tục duyệt trang theo liên kết lại thêm vào danh sách liên kết có trang sau: • https://vietnamnet.vn/kinh-doanh/tai-chinh • https://vietnamnet.vn/kinh-doanh/dau-tu • https://vietnamnet.vn/the-gioi/viet-nam-va-the-gioi • https://vietnamnet.vn/giai-tri/the-gioi-sao • https://vietnamnet.vn/the-thao/bong-da-viet-nam • https://vietnamnet.vn/suc-khoe/suc-khoe-24h Lúc Frontier có đến 10 liên kết, q trình thu thập liên kết lặp lặp lại thỏa mãn điều kiện định người dùng đặt chẳng hạn Frontier chứa 100 liên kết dừng lại 3.Sơ đồ hoạt động Web Crawler Hình cho ta thấy sơ đồ hoạt động Web Crawler Từ danh sách Seed, Crawler tiến hành duyệt thu thập liên kết cho vào Frontier, từ Frontier tiến hành duyệt, xử lý, mục đích cuối thu thập, lưu trữ thông tin mong muốn phục vụ cho việc nghiên cứu, đánh giá, tìm kiếm thơng tin Với xuất Crawler, thao tác thực cách tự động, tốc độ Crawler nhanh nhiều so với cách thủ công nhiên để thông tin thu thập từ Crawler xác thơng tin thu thập theo cách thủ cơng việc cấu hình, thuật tốn, kỹ thuật bóc tách liệu phải đầu tư nhiều Hình Sơ đồ hoạt động Web Crawler đơn giản 4.Xử lý liệu cách sau thu thập Sau trình thu thập liệu từ Web Crawler, việc xử lý liệu đặc biệt quan trọng Ví dụ ta duyệt trang Web, sơ đồ hình 1.1 phía trên, ta thu thập nội dung trang Web đó, thực tế, thơng tin mong muốn nhiều phần nhỏ trang Web Lấy ví dụ cụ thể, thu thập liệu việc làm, duyệt đến trang chủ, ta cần lấy thông tin danh mục (category) bao gồm tên liên kết chúng Ví dụ mục ‘kinh doanh’ có liên kết ‘https://vietnamnet.vn/kinh-doanh’, mục ‘Giáo dục’ có liên kết ‘https://vietnamnet.vn/giao-duc Những thông tin chiếm phần nhỏ trang Web, phần cịn lại gồm thơng tin quảng cáo, hình minh họa, viết liên quan đến việc làm lại không nằm mục đích thu thập chúng ta.Thơng tin có giá trị sử dụng cách Các khả webcrawl Nhìn chung, web crawler hầu hết crawl phần nhỏ World Wide Web, trang web đến cách theo liên kết hyperlink Các crawler thường phải bỏ qua trang có tính động theo máy khách (client-based dynamism) theo truy vấn (input dynamism) Cũng có vài cơng trình nghiên cứu xây dựng hidden-web crawler HiWE [8], nhiên vấn đề tầm thường tiếp tục nghiên cứu phát triển Hình cho thấy nhìn tổng quan phân loại trang web tĩnh - động, với khả web crawler (thương mại) Thể Nội dung Nội dung động Recommended for you Document continues below Premium Lttctt - Monetary 18 and Financial… Monetary and… 100% (1) Premium Push and pull motivation social… Marketing 100% (3) GWIPremium report - Gen Z 33 Marketing 100% (1) PremiumQ - no Practices description Monetary and… 100% (1) Cách thức tĩnh Thời gian Trang tĩnh hồn tồn Chương trình thực thi server-side Mã nhúng thực thi server-side Mã nhúng thực thi client-side ClientTruy vấn based Khơng cần xét trang tĩnh hồn tồn tạo nội dung động Không cần xét nội dung tĩnh Các crawler truyền thống (W b ổi) Các crawler cá nhân (Các web tùy biến) Một vài crawler (Web ẩn) Khơng có Hình Phân loại web khả web crawler 6.Phân tích sơ Có thể thấy rằng, ứng dụng mà đề tài cần xây dựng chương trình vừa crawl web cách tự động, vừa có khả bóc tách, trích xuất liệu web scraper Nhìn chung ứng dụng cần module chính: crawler module data extractor module Crawler module giúp ứng dụng “duyệt” nhiều trang web tương tự cách tự động (ví dụ trang phân trang trang danh mục), với trang web duyệt qua crawler module tải nội dung trang web lưu trữ tạm Nội dung trang web sau chuyển cho data extractor module, data extractor module có nhiệm vụ phân tích, xử lý nội dung trang web, chuyển đổi sang cấu trúc trung gian để thuận tiện cho bước bóc tách, trích xuất liệu Các điểm khác biệt mấu chốt ứng dụng đề tài cần xây dựng generic web crawler là: Ứng dụng không cần phải cố gắng crawl nhiều web page WWW tốt web crawler khác Ứng dụng không thiết phải thường xuyên viếng thăm lại trang web để cập nhật nội dung Ứng dụng phải có tính tùy biến cao, phục vụ cho mục đích cụ thể khơng web crawler search engine (crawl phần Web để đánh index), ứng dụng phải hỗ trợ (một) phần Web ẩn Vì phải phục vụ cho mục đích cụ thể nên ứng dụng cần “dẫn đường” người sử dụng Các đặc điểm dẫn đến hình vẽ sau, thể phần Web mà thành phần crawler ứng dụng crawl Thể Cách thức Nội dung tĩnh Nội dung động Thời gian Clientbased Truy vấn Khơng cần xét trang tĩnh hồn tồn khơng thể tạo nội dung động Trang tĩnh hoàn toàn Chương trình thực thi server-side Mã nhúng thực thi server-side Mã nhúng thực thi client-side Khơng cần xét nội dung tĩnh Các crawler truyền thống (W b ổi) Các crawler cá nhân (Các web tùy biến) Một vài crawler (Web ẩn) Khơng có Crawler ứng dụng đề tài Hình Phạm vi thành phần crawler ứng dụng đề tài Thành phần data extractor ứng dụng khơng có nhiều khác biệt với web scraper khác Ứng dụng phải bóc tách, trích xuất liệu (có tương đồng, người sử dụng đặc tả) cách tự động Ngồi ra, lĩnh vực trích xuất thơng tin (Information Retrieval, [1]) có hướng nghiên cứu khác gần gũi với lĩnh vực khai phá liệu (data mining) trí tuệ nhân tạo (artificial intelligence) Hướng nghiên cứu xây dựng, phát triển công cụ có khả tự động crawl trích xuất thơng tin cách hồn tồn tự động, khơng cần cần can thiệp người, cơng cụ cịn có khả tự học (machine learning) thông qua liệu mẫu [11], nhờ ứng dụng nhiều loại trang web có cấu trúc khác cách tự động Ưu điểm hướng tiếp cận tính tự động cao, chạy nhiều website khác (cùng lĩnh vực) cách tự động Tuy nhiên công cụ kiểu thường sử dụng cho lĩnh vực cụ thể phổ biến (domain-specific), chẳng hạn lĩnh vực tin tức trực tuyến Vì lý hạn chế thời gian nên đề tài luận văn không theo hướng Hướng tiếp cận đề tài xây dựng ứng dụng có khả giải vấn đề trích xuất thơng tin rời rạc cụ thể Ứng dụng xây dựng framework có khả mở rộng được, tùy biến người sử dụng, để sử dụng cho nhiều loại website khác nhau, nhược điểm sử dụng ứng dụng cho website có cấu trúc khác, người sử dụng phải đặc tả lại thông số đầu vào Chương 2: Xây dựng webCrawl 1.Crawler Class Crawler có nhiệm vụ lấy nội dung trang web từ url options trả định nghĩa HTML Crawler bao gồm hai crawler engine Simple Crawler Engine Advanced Crawler Engine Hình Sơ đồ class Crawler Hiện chương trình hỗ trợ sử dụng hai crawler engine, người sử dụng định chọn lựa engine dùng thông qua thẻ engine đặc tả cấu hình XML 1.1.1.1 Simple Crawler: Hình Sơ đồ hoạt động Simple Crawler Sử dụng pHTML Helper, wrapper thư viện cURL PHP, có khả thực chức HTTP như: GET, POST, HTTP Auth … Khai báo: $crawler = new Simple_Crawler(); Lấy nội dung trang bình thường $crawler->load($url); Lấy nội dung trang có post, va http auth $options = array( ‘post’ => array( ‘field1’ => ‘value1’, ‘field2’ => ‘value2’, ), ‘auth’ => array( ‘type’ => ‘basic’, ‘user’ => ‘user’, ‘pass’ => ‘password’, ) ); $crawler->load($url, $options); 2.Advanced Crawler: Hình Sơ đồ hoạt động Advanced Crawler 3.wdeBrowser Advanced Crawler sử dung wdeBrowser - browser giả lập viết java nhóm thực Chương trình sử dụng thư viện HTMLUnit để giả lập browser, có khả thực đoạn mã javascript, activeX, java applet… Khi cung cấp url kèm theo options mô tả hoạt đông, Advanced Crawler tạo fileInput chứa hoạt động đó, sau gọi wdeBrowser với thông số input output, wdeBrowser thực action truyền qua lấy nội dung cuối ghi vào file output, file chứa nội dung trang Web cần lấy wdeBrowser nhận thông số tập tin đầu vào tập tin đầu java –jar wdeBrowser input.txt output.html Khi thực thi, wdeBrowser tiến hành đọc nội dung file input, thực action miêu tả Sau ghi kết cuối file output Cấu trúc file input url trang web action block action block … Mỗi action block miêu tả thành phần nằm dòng riêng biệt: Action Type: loại action Hiện chương trình hỗ trợ hai loại action bản, tương tự cấu hình XML: - Type: thực thao tác nhập giá trị value vào target - Click: thực thao tác click chuột vào target Value Action lúc option thao tác: o Nếu Value: “auto”: chương trình thực tự động đồng trang web sau click vào đối tượng xảy ajax (hiện hoạt động chưa xác) o Nếu Value số, chương trình đợi khoảng thời gian Value trước thực bước trả kết sau o Nếu Value có dạng “[event]xpath”: Nếu event “change”: chương trình đợi phần tử element lấy xpath thay đổi event timeout (5s) Target: đối tượng tác động action Target có dạng: [type] search Hiện chương trình hỗ trợ kiểu tìm kiếm là: - Nếu type “name” chương trình tìm kiếm phần tử có thuộc tính name search - Nếu type “id” chương trình tìm kiếm phần tử có thuộc tính id search - Nếu type “xpath” lúc giá trị search phải có dạng [number]xpath, chương trình thực tìm kiếm phần tử thỏa biểu thức xpath lấy phần tử thứ number phần tử tìm kiếm 4.Extractor Class Extractor có nhiệm vụ bóc tách liệu từ nội dung trang web mà crawler trả Hình 6-1 Sơ đồ class Extractor Hiện chương trình hỗ trợ xử lý nhiều input khác nhau: XPath, Perl Expression jQuery Selector Tương ứng có extractor: 4.1Expression Extractor Sử dụng Perl Expression để lấy liệu Extractor thưc match expression trực tiêp từ input crawler tạo ra.Ví dụ: /([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6})/s Extractor thực lệnh match expression với nội dung trang web tại, kết trả danh sách địa email 4.2 XPath Extractor Sử dụng XPATH để lấy liệu thông qua hai helper pDOM pXPATH Khác với Expression Extractor, XPATH cần phải thực bước chuyển đổi từ input crawler tạo trước query lấy liệu Khi thực lệnh load, Extractor tạo DOMDocument pDOM, từ DOMDocument tạo DOMXPath để query liệu Ví dụ: //div[@class=”title”]| Extractor thực lệnh query DOMDocument tại, tìm kiếm div có thuộc tính class title 4.3Selector Extractor Sử dụng cú pháp jQuery Selector để lấy liệu hỗ trợ thư viện phpQuery jQuery JavaScript framework sử dụng rộng rãi ứng dụng Web thời gian gần jQuery cung cấp chức jQuery Selector - cách thức tìm kiếm phần tử trang web dựa vào cú pháp CSS Còn phpQuery thư viện PHP, đem lại tính jQuery vào code PHP Mỗi template selector có dạng: expression | function:argument Trong expression mẫu tìm kiếm, function hàm thực với tham số argument sau tìm kiếm Sau phpQuery thực tìm kiếm phần tử thỏa mản expression, kết trả tập hợp phpQuery object, Extractor tiếp tục thực hiên function action trả giá trị tương ứng Hiện Extractor hỗ trợ function: attr: lấy thuộc tính value: lấy giá trị html: lấy nội dung html text: lấy nội dung text Ví dụ: a.title_link|attr:href Extractor thực lệnh select văn tại, kết trả anchor có class “title_link”, sau lấy thuộc tính href anchor