
BÁO CÁO TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG THU
THẬP DỮ LIỆU WEB ĐỘNG

Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động
2
MỤC LỤC
4 Phân tích ........................................................................................................................ 4
4.1 Quá trình thu thập dữ liệu tổng quát ........................................................................ 4
4.2 Phân loại các trang Web dựa vào cách thức chuyển trang ....................................... 7
4.3 Các khả năng ứng dụng cần cung cấp ..................................................................... 9
5 Thiết kế ........................................................................................................................ 11
5.1 Sơ đồ Use Case..................................................................................................... 11
5.2 Kiến trúc tổng quan .............................................................................................. 12
5.3 Thành phần FRONT ............................................................................................. 14
5.3.1 Mô hình MVC .............................................................................................. 14
5.3.2 Bot Manager ................................................................................................. 15
5.3.2.1 Các trạng thái của Bot ............................................................................... 15
5.3.2.2 Các lệnh tạo mới, xóa, sửa thông tin Robot ............................................... 17
5.3.3 Statistics ....................................................................................................... 20
5.4 Thành phần CORE ............................................................................................... 20
5.4.1 Crawler ......................................................................................................... 21
5.4.2 Extractor ....................................................................................................... 23
5.4.3 Các Helper .................................................................................................... 24
6 Hiện thực ..................................................................................................................... 26
6.1 Môi trường phát triển ứng dụng ............................................................................ 26
6.2 Giao diện sử dụng của WDE ................................................................................. 26
6.3 Đặc tả dữ liệu đầu vào bằng XML (FOXROCK) .................................................. 30
6.3.1 Cấu trúc tổng quát của file cấu hình XML ..................................................... 30
6.3.2 Chi tiết các thành phần (element) .................................................................. 30
6.4 Các action ............................................................................................................. 30

Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động
3
6.5 Cấu trúc Database ................................................................................................. 30
6.6 Front ..................................................................................................................... 33
6.6.1 Bot Manager ................................................................................................. 33
6.7 Core ..................................................................................................................... 35
6.7.1 Robot ............................................................................................................ 35
6.7.1.1 Quản lý tiến trình của Robot (Robot process) ............................................ 36
6.7.1.2 Thực hiện quy trình thu thập dữ liệu .......................................................... 38
6.7.2 Crawler ......................................................................................................... 39
6.7.2.1 Simple Crawler: ........................................................................................ 40
6.7.2.2 Advanced Crawler: ................................................................................... 42
6.7.2.2.1 wdeBrowser ........................................................................................ 42
6.7.2.2.2 Ví dụ ................................................................................................... 43
6.7.3 Extractor ....................................................................................................... 44
6.7.3.1 Expression Extractor ................................................................................. 45
6.7.3.2 XPath Extractor......................................................................................... 45
6.7.3.3 Selector Extractor...................................................................................... 46

Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động
4
4 Phân tích
4.1 Quá trình thu thập dữ liệu tổng quát
Xem xét mô hình tổng quát của một website cung cấp danh bạ về các doanh nghiệp
trong nhiều lĩnh vực. Danh bạ này có thể được chia làm nhiều mục lớn (category) về các lĩnh
vực lớn, trong mỗi category lại phân ra làm nhiều phân mục nhỏ (sub-category) về các lĩnh
vực nhỏ, trong mỗi sub category lại phân ra làm nhiều phân mục nhỏ hơn nữa, cứ thế cho đến
phân mục nhỏ nhất, phân mục nhỏ nhất sẽ chứa danh sách các liên kết đến các trang chi tiết
về một doanh nghiệp nào đó nằm trong phân mục này. Các trang chi tiết này chính là các
trang cấp thấp nhất, nội dung của trang này sẽ chứa các thông tin mà người sử dụng website
quan tâm như: tên doanh nghiệp, mô tả về doanh nghiệp, địa chỉ liên lạc, số điện thoại, địa chỉ
email v.v… Mô hình trang web kiểu này được gọi là mô hình Master – Detail [1], trong
trường hợp tổng quát, các trang cấp N chính là trang master của trang cấp N+1 và trang cấp
N+1 là trang detail của trang cấp N, và cấp N+1 được gọi là thấp hơn cấp N. Lưu ý rằng ở
mỗi cấp có thể sẽ có sự phân trang (pagination – danh sách các category thuộc cùng 1 cấp sẽ
không chỉ nằm trong 1 trang mà có thể nằm trong nhiều trang). Ta gọi những trang hiển thị
danh sách các category lớn nhất là những trang cấp 1, từ một trong những trang cấp 1 nếu ta
chọn 1 category nào đó thì sẽ dẫn đến một trang hiển thị các sub-category thuộc category đã
chọn, những trang này ta gọi là những trang cấp 2, và cứ thế cho đến cấp thấp nhất.

Luận văn tốt nghiệp Xây dựng ứng dụng thu thập dữ liệu web tự động
5
Hình 4-1. Một trang web danh bạ
Giả sử một tình huống như sau: một người sử dụng tên là John muốn thu thập các thông
tin về các doanh nghiệp nằm trong một lĩnh vực nào đó như tên doanh nghiệp, địa chỉ email,
để phục vụ mục đích gửi thư quảng cáo. Nếu như John không có một công cụ hỗ trợ nào thì
anh ta sẽ phải thực hiện công việc thu thập thông tin này một cách thủ công. Trình tự công
việc John phải làm có thể sẽ như sau:
1. Từ trang chủ website, John lần lượt click vào các liên kết phân mục để vào được
phân mục của lĩnh vực kinh doanh mong muốn.
2. Sau khi đã vào được phân mục của lĩnh vực John mong muốn, John sẽ thấy danh
sách các doanh nghiệp thuộc lĩnh vực này được liệt kê ra. Anh ta phải click vào
đường dẫn dẫn đến trang chi tiết của doanh nghiệp đầu tiên.
3. Ở trang thông tin chi tiết này (một trang cấp N, cấp thấp nhất), John chọn những
thông tin mà anh ta mong muốn (ở dạng chữ) và copy các thông tin đó, lưu vào đâu
đó mà John muốn, có thể là một tài liệu Microsoft Excel.

