Tải bản đầy đủ (.pdf) (62 trang)

Xây dựng hệ thống nhằm xác thực dữ liệu thu thập từ nhiều nguồn khác nhau: luận văn thạc sĩ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.66 MB, 62 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG
***

CAO THỊ HỒNG SANH

XÂY DỰNG HỆ THỐNG NHẰM XÁC THỰC
DỮ LIỆU THU THẬP TỪ NHIỀU NGUỒN KHÁC NHAU

Luận văn thạc sĩ Công nghệ thông tin

Đồng Nai – Năm 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG
***

CAO THỊ HỒNG SANH

XÂY DỰNG HỆ THỐNG NHẰM XÁC THỰC
DỮ LIỆU THU THẬP TỪ NHIỀU NGUỒN KHÁC NHAU

Chuyên ngành : Công nghệ thông tin
Mã số: 60480201

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. TS. ĐẶNG TRẦN KHÁNH

Đồng Nai – Năm 2017



i

LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn đến các thầy cô giáo trường Đại học Lạc Hồng – Đồng Nai
đã quan tâm tổ chức chỉ đạo và trực tiếp giảng dạy khoá cao học của chúng tôi. Cảm ơn
cha (mẹ), thầy cô, bạn bè, đồng nghiệp và người thân gia đình, những người đã dạy bảo
và ủng hộ tôi trong suốt quá trình học tập.
Đặc biệt, tôi xin gửi lời cảm ơn chân thành đến thầy giáo hướng dẫn PGS.TS
Đặng Trần Khánh, người đã tận tình chỉ bảo và góp ý về mặt chuyên môn cho tôi trong
suốt quá trình làm luận văn. Nếu không có sự giúp đỡ của thầy thì tôi khó có thể hoàn
thành được luận văn này.
Trong suốt quá trình làm luận văn, bản thân tôi đã cố gắng tập trung tìm hiểu,
nghiên cứu và tham khảo thêm nhiều tài liệu liên quan. Tuy nhiên, do bản thân mới bắt
đầu trên con đường nghiên cứu khoa học, chắc chắn bản luận văn vẫn còn nhiều thiếu
sót. Tôi rất mong được nhận sự chỉ bảo của các Thầy, Cô giáo và các góp ý của bạn bè,
đồng nghiệp để luận văn được hoàn thiện hơn.
Cuối cùng, tôi xin chúc sức khỏe Quý thầy cô và bạn bè, đồng nghiệp đã luôn ủng
hộ, động viên để tôi yên tâm nghiên cứu và hoàn thành luận văn.
Đồng Nai, tháng 07 năm 2017
Học viên thực hiện

Cao Thị Hồng Sanh


ii

LỜI CAM ĐOAN
Tôi cam đoan luận văn “Xây dựng hệ thống xác thực dữ liệu thu thập từ nhiều
nguồn khác nhau” là công trình nghiên cứu của bản thân. Tài liệu tham khảo tôi có sử

dụng đã được nêu rõ trong phần Tài liệu tham khảo. Các số liệu, kết quả nêu trong luận
văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác.
Tôi xin chịu trách nhiệm về nghiên cứu của mình!
Đồng Nai, tháng 07 năm 2017
Học viên thực hiện

Cao Thị Hồng Sanh


iii

TÓM TẮT LUẬN VĂN
Đề tài: Xây dựng hệ thống nhằm xác thực dữ liệu thu thập từ nhiều nguồn khác
nhau.
Ngành: Công nghệ thông tin

Mã số: 60.48.02.01

Học viên: Cao Thị Hồng Sanh
Người hướng dẫn: PGS. TS. Đặng Trần Khánh
NỘI DUNG TÓM TẮT
1. Nội dung được giao và kết quả mong đợi của người hướng dẫn
- Nghiên cứu các cách thức thu thập thông tin Website thương mại điện tử.
- Nghiên cứu các cách thức phân tích, rút trích thông tin sản phẩm từ mã

nguồn Web.
- Tìm hiểu các giải pháp và chiến thuật xác thực dữ liệu thu thập được từ

nhiều nguồn khác nhau.
- Hiện thực các giải pháp.

- Kiểm thử các giải thuật này.
- Viết báo cáo tổng kết luận văn.
2. Cách thức giải quyết vấn đề
- Tìm hiểu cách thức thu thập thông tin Website thương mại điện tử qua các

nghiên cứu trước đây.
- Nghiên cứu các giải thuật xác thực thông tin Website qua những nghiên

cứu từ các bài báo khoa học.
- Tìm hiểu các hệ quản trị cơ sở dữ liệu có khả năng lưu trữ dữ liệu thương

mại điện tử thu thập được: Tìm hiểu thông qua sách, báo, internet…
- Đề xuất kiến trúc hệ thống và công nghệ phù hợp với đề tài.
- Phát triển hệ thống và thực hiện kiểm thử


iv
3. Đánh giá về mặt khoa học của kết quả
- Tìm hiểu các giải pháp thu thập thông tin Website thương mại điện tử
- Đề xuất giải pháp xác thực dữ liệu thu thập, tăng độ chính xác dữ liệu để

kết quả phân tích sau này chính xác, tin cậy hơn.
- Cải thiện hệ thống thông qua khả năng mở rộng song song thu thập dữ

liệu.
4. Những vấn đề còn tồn tại so với nội dung được giao (nếu có)

Ngày 01 tháng 7 năm 2017
NGƯỜI HƯỚNG DẪN


HỌC VIÊN

PGS. TS. Đặng Trần Khánh

Cao Thị Hồng Sanh


v

MỤC LỤC
LỜI CẢM ƠN ...............................................................................................i
LỜI CAM ĐOAN ....................................................................................... ii
TÓM TẮT LUẬN VĂN ............................................................................ iii
BẢNG DANH MỤC TỪ VIẾT TẮT ...................................................... vii
DANH MỤC BẢNG ................................................................................ viii
BẢNG DANH MỤC HÌNH .......................................................................ix
CHƯƠNG 1 TỔNG QUAN ........................................................................1
1.1 Tổng quan đề tài ................................................................................................. 1
1.2 Mục đích đề tài ................................................................................................... 4
1.3 Mục tiêu chọn đề tài ........................................................................................... 4
2.1 Hệ thống thu thập dữ liệu .................................................................................. 5
2.1.1 Chương trình thu thập dữ liệu ..................................................................... 5
2.1.2 Vòng thu thập dữ liệu Website ..................................................................... 7
2.2 Phương pháp thu thập dữ liệu .......................................................................... 9
2.2.1 Trình thu thập đa luồng ................................................................................ 9
2.2.2 Các thuật toán thu thập dữ liệu .................................................................. 11
2.3 Lược sử và kho lưu trữ trang .......................................................................... 14
2.4 Mô hình thẻ HTML dạng cây ......................................................................... 15

CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÁC THỰC DỮ

LIỆU THU THẬP ĐƯỢC ........................................................................17
3.1 Các giải pháp thu thập trang Web ................................................................. 17
3.1.1 Trình duyệt PhanTomJS ............................................................................. 17
3.1.2 Thư viện HtmlUnit ....................................................................................... 19
3.1.3 Webview trên các thiết bị di động .............................................................. 20
3.2 Các giải pháp rút trích dữ liệu trang Web .................................................... 21
3.2.1 Xpath ............................................................................................................. 21
3.2.2 Regex (Regular Expresion – Biểu thức chính quy) ................................... 24
Bảng 3.1 Các quy tắc cơ bản của Regex ...................................................... 26


vi
3.2.3 CSS Selector ................................................................................................. 28
3.3 Giải pháp xác thực dữ liệu .............................................................................. 29
3.3.1 Giải pháp xác thực dữ liệu thông qua chiến thuật trùng lắp thu thập ... 29
3.3.2 Giải pháp xác thực dữ liệu dựa trên bất thường nội dung ...................... 30

CHƯƠNG 4 THIẾT KẾ HỆ THỐNG ....................................................39
4.1 Kiến trúc hệ thống thu thập dữ liệu ............................................................... 39
4.1.1 Kiến trúc tổng quan hệ thống ..................................................................... 39
4.1.2 Kiến trúc thành phần thu thập dữ liệu ...................................................... 40
4.1.3 Thành phần tiền xử lý dữ liệu ..................................................................... 45
4.1.4 Kiến trúc thành phần rút trích dữ liệu ...................................................... 46
4.1.5 Kiến trúc thành phần xác thực dữ liệu ...................................................... 48

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ........................49
5.1 Đánh giá kết quả đặt được .............................................................................. 49
5.1.1 Ưu điểm ......................................................................................................... 49
5.1.2 Hạn chế ......................................................................................................... 49
5.2 Đối với yêu cầu của đề tài: Đạt ....................................................................... 49


TÀI LIỆU THAM KHẢO ............................................................................


vii

BẢNG DANH MỤC TỪ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng việt

C2C

Customer to Customer

Khách hàng với
Khách hàng

HTTP/HTTPs

HyperText Transfer Protocol/
Hyper Text Transfer Protocol
Secure

Giao thức truyền tải
siêu văn bản

URL


Uniform Resource Locator

HTML

HyperText Markup Language

XML

eXtensible Markup Language

DOM

Document Object Model

CSS

Cascading Style Sheets

JSON

Javascript Object Notation

XPath

XML Path Language

Regex

Regular Expression


SVG

Scalable Vector Graphics

Med

Median

Số trung vị

IP

Internet Protocal

Giao thức Internet

MC

MedCouple

Web-API

Web Application Programming
Interface

Ngôn ngữ đánh dấu
Siêu văn bản
Ngôn ngữ đánh dấu
mở rộng

Mô hình đối tượng
tài liệu
Các tập tin định kiểu
theo tầng

Biểu thức chính quy


viii

DANH MỤC BẢNG
Bảng 3.1 Các quy tắc cơ bản của Regex
Bảng 3.2 Bảng Tập dữ liệu 1, Tập dữ liệu 2
Bảng 3.3 Bảng phân loại số từ theo thể loại
Bảng 3.4 Bảng ước lượng xác suất của từng từ
Bảng 3.5 Bảng tập dữ liệu 3
Bảng 3.6: Bảng tập dữ liệu giá của 64 mẫu giá điện thoại Samsung Galaxy S6
edge
Bảng 3.7: Bảng dùng phương pháp thống kê Adjust Boxplot phát hiện giá trị
Oulines


ix

BẢNG DANH MỤC HÌNH
Hình 2.1 Kiến trúc của trình thu thập Web
Hình 2.2 Vòng thu thập dữ liệu Web
Hình 2. 3 Mô hình trình thu thập đa luồng
Hình 2. 4 Mô hình cây tương ứng mã nguồn HTML
Hình 3. 1 Tải trang web google.com bằng PhantomJS

Hình 3. 2 PhantomJS đóng giả Safari trên Iphone
Hình 3.3 HTML giả dạng Chrome truy cập website thông qua Proxy Server
Hình 3. 4 Dùng hai hay nhiều Webview để tải trang web
Hình 3.5 Mô hình xác thực dữ liệu trùng lắp thu thập
Hình 3.6 Mô tả của bài đăng trên trang Vatgia.com
Hình 4.1 Kiến trúc tổng quan hệ thống
Hình 4.2 Sơ Đồ Mô Hình Hóa Trang Web
Hình 4.3 Lưu Đồ Của Hệ Thống Webcrawler
Hình 4.4 Lưu đồ của hệ thống Web Scraping
Hình 4.5 Kiến trúc mô hình rút trích dữ liệu
Hình 4.6 Sơ đồ dòng dữ liệu khi được rút trích
Hình 4.7 Kiến trúc mô hình xác thực


1

CHƯƠNG 1 TỔNG QUAN
1.1 Tổng quan đề tài
Trong bối cảnh Internet phổ biến trên toàn thế giới lĩnh vực thương mại
điện tử đang là thị trường đầy tiềm năng và đầy hấp đẫn đối với các Doanh
nghiệp và các cá nhân đang ấp ủ kinh doanh qua mạng. Thương mại điện tử là xu
hướng của thời đại toàn cầu hóa, đây là lĩnh vực tiềm năng để các doanh nghiệp
vừa và nhỏ sinh lợi và phát triển, cơ hội cho những ai muốn khởi nghiệp kinh
doanh theo mô hình mới. Thương mại điện tử còn được xem như một trong
những giải pháp thúc đẩy sự phát triển của nền kinh tế quốc gia. Các công ty đại
diện cho sự thành công trong lĩnh vực thương mại điện tử trên thế giới như
Amazon, Ebay, Alibaba,… và ở Việt Nam như Tiki, Vatgia, Lazada.
Hiể u đươ ̣c xu hướng phát triển của thi ̣ trường là chìa khóa quan tro ̣ng để
dẫn đế n thành công, nhất là với các doanh nghiệp mà sự sinh tồn phu ̣ thuộc hoàn
toàn vào người dùng. Cách tìm hiể u thi ̣trường tố t nhấ t chiń h là thu thập và thố ng

kê các tin tức trên chính các trang Web đang tồn tại trên thị trường. Để điều tra
nhằm thâm nhập thị trường hoặc tái đầu tư, doanh nghiệp phải đầu tư vào bộ
phận làm công việc nghiên cứu thị trường. Công cụ của họ có thể là thủ công
bằng tay viếng thăm từng trang Web hoặc dùng Robot, máy chủ để thu thập tự
động thông tin (Crawler).
Trong thị trường thương mại điện tử to lớn đó C2C (Customer-to-Customer)
là mô hình bán hàng mà người tham gia chính là khách hàng. Việc bán hàng diễn
ra giữa khách hàng và khách hàng. Doanh nghiệp chỉ cung cấp môi trường, cơ sở
vật chất để giao dịch diễn ra. Hiể u đươ ̣c xu hướng phát triể n của thi ̣ trường C2C
là chìa khóa quan tro ̣ng để dẫn đến thành công không chỉ cho doanh nghiệp mà
cả khách hàng. Doanh nghiệp đầu tư vào thị trường C2C mong sinh lợi cao nhất,
còn khách hàng ở thị trường C2C mong bán được giá tốt nhất, bán nhanh nhất.
Để điều tra nhằm thâm nhập thị trường hoặc tái đầu tư, doanh nghiệp phải
đầu tư vào bộ phận nghiên cứu thị trường, công cụ của họ bao gồm:


2

Thủ công bằng tay: Con người viếng thăm từng trang Web đối với cách làm
thủ công bằng tay chi phí cao, tốc độ chậm, độ chính xác tương đối vì phụ thuộc
con người.
Dùng Robot, máy chủ để thu thập tự động thông tin (Crawler): Đối với cách
làm này chi phí thấp, tốc độ nhanh, độ chính xác cao. Tuy nhiên, cách làm này sẽ
bị ngăn chặn bởi quản trị viên của các trang web, người quản trị các trang web
ngăn chặn bằng cách:
Không muốn tài nguyên máy chủ của họ bị lãng phí bởi các Robot hay
Crawler mà họ muốn tài nguyên của mình được dùng phục vụ cho người dùng
thật để tạo ra những đơn hàng.
Khi họ phát hiện các Robot hay Crawler đang thu thập thông tin thì họ sẽ
ngăn lại hoặc trả về dữ liệu không chính xác. Khi dữ liệu trả về không chính xác

gây ra thiệt hại lớn cho nhà đầu tư.
Khách hàng, chủ doanh nghiệp không nắm bắt thị trường, dẫn đến đầu tư
không hiệu quả, gây lãng phí cho xã hội.
Hiện tại có ít nghiên cứu cũng như ứng dụng thu thập dữ liệu hỗ trợ xác
thực kết quả dữ liệu thu thập được. Do thị trường quá rộng lớn và thường xuyên
biến động, làm cho việc thu thập và xác thực dữ liệu rất khó khăn.
Vì vậy, mục tiêu của đề tài là “Xây dựng hệ thống nhằm xác thực dữ liệu
thu thập từ nhiều nguồn khác nhau”.
Đề tài luận văn thạc sĩ “Giải pháp vượt qua sự ngăn chặn thu thập dữ liệu
thương mại điện tử” của học viên Nguyễn Tấn Nhân lớp CNTT Khóa 7 Trường
đại học Lạc Hồng. Giới hạn của đề tài trên là dữ liệu thu thập chưa được xác
thực là dữ liệu gốc hay là dữ liệu đã bị chỉnh sửa bởi nhà cung cấp dịch vụ trả về.
Vì trong kinh doanh, hiểu được xu thế phát triển của thị trường là một trong chìa
khoá quan trọng để mở ra cánh cửa thành công. Đặc biệt trong mảng kinh doanh
dạng C2C, cách tốt nhất để tìm hiểu thị trường là áp dụng thống kê số liệu cho
từng mẫu đăng không những trên chính trang của mình mà cả trên trang của đối
thủ cạnh tranh với mình. Việc thu thập và phân tích thông tin được thực hiện qua


3

sức người là không hữu hiệu vì có hàng trăm mẫu rao bán được đăng mỗi ngày.
Vì vậy việc xây dựng hoặc thuê mướn một hệ thống “Server” nhằm mục đích tự
động việc thu thập, lưu trữ, và phân tích dữ liệu mạng để thay thế con người
trong việc tìm hiểu thị trường đã trở thành một nhu cầu rất lớn trong giới kinh
doanh qua mạng. Do đó đề cập đến phương án doanh nghiệp mướn các hệ thống
“Server” để nghiên cứu thị trường.
Các nhà cung cấp dịch vụ chuyên môn sẽ thâm nhập và thu thập dữ liệu từ
bất kỳ trang mạng nào theo yêu cầu của khách hàng. Như đã nói trên, khi chúng
ta chọn một nhà cung cấp dịch vụ cho việc thu thập, lưu trữ dữ liệu, có một số

rủi ro khiến chúng ta phải cân nhắc cẩn thận. Sau khi dữ liệu được thu thập sẽ
được lưu trữ trong máy chủ của nhà cung cấp dịch vụ và hoàn toàn bị họ quản lý.
Họ có thể trực tiếp thao túng dữ liệu mà không thông qua sự cho phép hoặc thậm
chí sự hay biết của chúng ta. Cho nên không ai có thể bảo đảm rằng dữ liệu được
giao ra hoàn toàn là dữ liệu gốc. Ngoài ra một số Doanh nghiệp có thoả thuận
với các nhà cung cấp dịch vụ phải đưa dữ liệu sai cho đối thủ của mình. Điều
này có nghĩa là khách hàng của các nhà cung cấp dữ liệu nhận được thông tin đã
bị chỉnh sửa và mất đi độ tin cậy. Xa hơn nữa, xác định độ trung thực của thông
tin trước khi phân tích là rất quan trọng trong quá trình nghiên cứu thị trường.
Có nhiều nghiên cứu trước đây về các hệ thống thâm nhập và thu thập
thông tin mạng có thể giúp chúng ta tạo một hệ thống cho riêng mình. Nhưng các
nghiên cứu này không đưa ra bước kiểm tra độ xác tín của dữ liệu. Rủi ro dữ liệu
bị thao túng cũng bị bỏ qua trong các nghiên cứu này. Thêm nữa, cấu trúc phức
tạp của dữ liệu từ các trang mạng C2C là một trong những thách thức mà chúng
ta phải đối diện. Vì sự phức tạp này chúng ta không thể sử dụng chỉ một phương
pháp nào đó mà phải kết hợp nhiều cách khác nhau để tìm ra thông tin gian lận
hiệu quả hơn.
Vì vậy tôi chọn đề tài “Xây dựng hệ thống nhằm xác thực dữ liệu thu thập
từ nhiều nguồn khác nhau” nhằm mang lại hiệu quả về mặt thời gian và kinh tế
cho các doanh nghiệp


4

1.2 Mục đích đề tài
Luận văn tập trung nghiên cứu về hệ thống thu thập dữ liệu, nghiên cứu các
giải pháp rút trích dữ liệu, giải pháp xác thực dữ liệu. Ứng dụng kết quả nghiên
cứu vào hệ thống Website nhằm thu thập dữ liệu được chính xác hơn.
Nội dung luận văn: gồm 05 chương
Chương 1: Tổng quan về tình hình nghiên cứu trong và ngoài nước liên

quan đến phương pháp xác thực dữ liệu thu thập từ nhiều nguồn, mục tiêu đề tài
và giới hạn của đề tài.
Chương 2: Cơ sở lý thuyết.
Chương 3: Phân tích thiết kế hệ thống xác thực dữ liệu thu thập được.
Chương 4: Thiết kế hệ thống
Chương 5: Kết luận và hướng phát triển
Phương pháp thực hiện:
Nghiên cứu trong tài liệu (từ các sách, bài báo, tạp chí khoa học...). Thừa
kế, tham khảo các kết quả nghiên cứu gần và có liên quan.
Tìm hiểu các hệ quản trị cơ sở dữ liệu có khả năng lưu trữ dữ liệu thương
mại điện tử thu thập được: Tìm hiểu thông qua sách, báo, internet…
Đề xuất kiến trúc hệ thống và công nghệ phù hợp với đề tài.
Phát triển hệ thống và thực hiện kiểm thử
1.3 Mục tiêu chọn đề tài
Luận văn tập trung xác thực dữ liệu thu thập được trên thị trường thương
mại điện tử C2C mà cụ thể là nghiên cứu thị trường về mảng Điện thoại di động.
Luận văn chỉ quan tâm tới độ chính xác mà không quan tâm tới thời gian thực
hiện.
Khi xác thực dữ liệu thu thập chỉ thực hiện trên đối tượng hình ảnh và văn
bản riêng biệt, chưa xác thực dữ liệu thu thập được khi đối tượng hình ảnh và
văn bản lồng nhau.


5

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Hệ thống thu thập dữ liệu
2.1.1 Chương trình thu thập dữ liệu
Web Crawler là một chương trình khai thác cấu trúc đồ thị đi từ trang này
đến trang khác. Nó còn có tên gọi là bọ Web, Robot, Spider, và sâu. Web

Crawler thường được sử dụng để thu thập tài nguyên (tin tức, hình ảnh,
video…). Hiện nay tên gọi phổ biến là trình thu thập Web [1],[6].

Hình 2.1 Kiến trúc của trình thu thập Web
Để lấy một trang Web, chúng ta cần một máy khách (Client) gửi nhiều yêu
cầu HTTP/HTTPS đến Web server, chờ đợi phản hồi và rồi phân tích chúng [4],
[5]. Client cần thu thập song song nhiều trang Web để tránh phải dành thời gian
chờ phản hồi từ các máy chủ website chậm hoặc do các trang lớn. Ngày nay, các
Web server tối ưu vấn đề này bằng cách gửi về Client một phần vừa đủ để hiển
thị trang đầu tiên (Above side) để người dùng thấy trang Web đã phản hồi nội
dung. Sau đó, những nội dung còn lại của Website mới tiếp tục được gởi về


6

thông qua việc thực thi Javascript. Điều này tạo hiệu ứng người dùng không phải
chờ đợi lâu, thường dưới 0.5 giây là trang Web đã hiển thị nội dung. Khi không
phải chời đợi lâu, khả năng người dùng rời trang Web càng thấp. Nếu hệ thống
Crawler không hỗ trợ Javacript thì chỉ một phần nội dung trang Web mà không
phải là toàn bộ được lưu trữ vào trong kho dữ liệu. Vì vậy, hỗ trợ Javascript là
một yếu tố quan trọng để Crawler có thể lấy nội dung trang Web.
Các trình thu thập thường chọn các trang Web sẽ ghé thăm đầu tiên, gọi là
các trang hạt giống (Seeds). Seeds được người dùng nhập vào và đây cũng chính
là những trang mà ta muốn thu thập thông tin. Hệ thống thu thập sẽ vào địa chỉ
này lọc ra thông tin rồi tìm ra các địa chỉ URL khác (Dựa vào những liên kết có
trong trang hạt giống). Sau đó thêm chúng vào danh sách các địa chỉ đã được
duyệt qua gọi là Crawl Frontier. Hệ thống thu thập sẽ lặp lại quá trình trước đó
để duyệt qua những 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.

Sau khi có được 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 trữ 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 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 cập nhật, ví dụ 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.
Các trang Web chủ yếu được viết bằng ngôn ngữ đánh dấu siêu văn bản
HTML, XHTML và được hướng đến đối tượng sử dụng là con người chứ không
phải máy tính. Thông tin trên các trang Web vô cùng phong phú và đầy hữu ích
do đó con người muốn thu thập và lưu trữ lại. Vì thế cần phải có những kỹ thuật
bóc tách dữ liệu (Parsing) từ đơn giản chỉ là bóc tách các siêu liên kết đến phức
tạp hơn là bóc tách bất kỳ nội dung nào trong một trang Web.


7

Hệ thống Search engine bắt đầu bằng trình thu thập nội dung thông tin
(Crawl) của trang Web, sau đó tiến hành lập chỉ mục cho toàn bộ phần nội dung
bên trong và tiến hành lưu trữ trang Web này trong cơ sở dữ liệu, trả về giá trị và
chỉ mục cho hàng triệu truy vấn của người dùng. GoogleNews có nhiệm vụ tổng
hợp tất cả các tin tức diễn ra hàng ngày trên Internet. Các trang Web được lập chỉ
mục dựa trên các thuật toán và mỗi thuật toán có những tác động tùy mục đích
sử dụng, chẳng hạn như: Mật độ từ khóa liên kết, các đường link, thẻ metatag.
2.1.2 Vòng thu thập dữ liệu Website
Cách tiếp cận đơn giản là Vòng thu thập dữ liệu, vòng gồm danh sách chứa
các URL chưa được ghé thăm, được gọi là biên (Frontier). Biên có thể chứa hàng
chục ngàn đến hàng trăm ngàn trang. Danh sách được khởi tạo bởi một số URL
hạt giống, các URL được cung cấp bởi người dùng hoặc một chương trình khác
đây là địa chỉ những trang Web mà người dùng muốn thu thập thông tin. Hệ

thống sẽ vào địa chỉ này lọc thông tin rồi tìm ra các địa chỉ URL khác (dựa vào
các liên kết có bên trong các Seeds). Sau đó thêm chúng vào danh sách các địa
chỉ đã được duyệt qua gọi là Crawl Frontier. Hệ thống sẽ lặp lại quá trình trước
đó để duyệt qua những URL mới. Quá trình Crawling sẽ qua rất nhiều địa chỉ
Website và thu thập rất nhiều nội dung khác nhau từ địa chỉ thu thập được hoạt
động của vòng thu thập như sau [2]:
 Lấy một URL từ Frontier ra để thu thập.
 Lấy trang tương ứng với URL thông qua HTTP hoặc HTTPS.
 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 trang.
 Cuối cùng là thêm các URL chưa ghé thăm vào Frontier.
Quá trình thu thập sẽ chấm dứt ngay khi trình thu thập thu thập đủ số trang
nhất định hoặc Frontier rỗng.


8

Một người duyệt Web thường sẽ đi từ trang chủ đến trang danh mục sản
phẩm rồi mới đến trang sản phẩm chi tiết. Khi đó người dùng có thể mở nhiều
tab trình duyệt để có thể duyệt sản phẩm nhanh nhất. Do đó cách thu thập dữ liệu
vòng này sẽ không thực hiện được với hệ thống Web Server chống Crawler. Hệ
thống Web Server chống Crawler không đơn giản ngăn chặn kết nối từ Crawler,
mà tinh vi nguy hiểm hơn khi chúng trả về dữ liệu giả cho Crawler. Hình dưới
mô tả vòng thu thập dữ liệu Web.

Start

End

Seed URLs

(hạt giống)

Crawling loop

No URL
Pick URL from
frontier

Fetch page

Parse page

Add URLs to
frontier

Hình 2.2 Vòng thu thập dữ liệu Web


9

Một cách thu thập khác là thu thập dạng lan truyền. Người dùng vẫn cung
cấp URL hạt giống, ví dụ trang chủ. Hệ thống Crawler sẽ giả lập hành vi người
dùng khi tìm đến trang danh mục sản phẩm (Category), lấy danh sách URL của
sản phẩm trong danh mục này. Từ danh sách này Crawler có thể giả lập hành vi
mở nhiều tab duyệt Web để thu thập dữ liệu. Việc lan truyền không chỉ dừng lại
ở cấp trên Category đi xuống cấp sản phẩm (Product) mà còn có thể đi ngang, từ
Product này sang Product khác. Việc lan truyền theo chiều ngang có thể được
thực thi khi trang Web cung cấp tính năng gợi ý sản phẩm tương tự. Mỗi sản
phẩm tương tự sẽ là một đường dẫn URL đến sản phẩm khác của trang Web. Với
cách thu thập dữ liệu này, hệ thống có thể thực thi song song trên nhiều thiết bị

thu thập dữ liệu. Khi đó, hệ thống cần có một máy trung tâm để quản lý các
URL, xác định URL nào đã duyệt rồi, URL nào cần phải thu thập dữ liệu trên
thiết bị có địa chỉ IP gì…
2.2 Phương pháp thu thập dữ liệu
2.2.1 Trình thu thập đa luồng
Mỗi vòng thu thập tuần tự chiếm một lượng lớn thời gian, trong khi đó một
trong hai cái là CPU hoặc mạng lại nhàn rỗi: CPU nhàn rỗi (trong khi truy cập
mạng/đĩa) hoặc mạng nhàn rỗi (trong các hoạt động của CPU). Việc xử lý đa
luồng với mỗi luồng là một vòng 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 có sẵn.


10

Hình 2.3 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. Chính vì thế cần một cơ chế đồng
bộ để tránh việc xung đột khi các luồng cùng tiến hành quá trình thu thập trên
một Frontier. Cơ chế này như sau:
 Luồng đầu tiên bắt đầu bằng cách khóa Frontier để chọn URL tiếp theo
cho quá trình thu thập dữ liệu.
 Sau khi lấy ra một URL nó sẽ mở khóa Frontier cho phép các luồng tiếp
theo truy cập vào Frontier.
 Frontier lại bị khóa lại để những URL mới được thêm vào.
Các bước khóa này là cần thiết để đồng bộ hóa việc sử dụng Frontier khi mà
Frontier bị chia sẻ bởi nhiều vòng thu thập. Một trình thu thập thông thường sẽ
duy trì một cấu trúc dữ liệu lược sử phục vụ cho việc tra cứu nhanh các URL đã


11


được thu thập. Do đó ngoài các Frontier thì việc đồng bộ hóa các truy cập vào
lược sử là điều cần thiết.
Các mô hình trình thu thập đa luồng cũng cần phải đối phó với các Frontier
rỗng giống như một trình thu thập theo tuần tự. Tuy nhiên đây là vấn đề không
đơn giản. Nếu một luồng thu thập phát hiện ra Frontier rỗng, nó không tự động
hiểu là toàn bộ trình thu thập đã đến trạng thái kết thúc. Nó có thể cho rằng các
luồng khác đang lấy trang và có thể thêm các URL mới trong tương lai gần. Một
cách giải quyết với tình trạng này là đặt một luồng một trạng thái chờ khi
Frontier bị khóa. Khi hết thời gian chờ nó sẽ kiểm tra lại Frontier. Sẽ có một bộ
kiểm tra chịu trách nhiệm theo dõi số luồng đang ở trạng thái chờ tại thời điểm
hiện tại. Chỉ khi tất cả các luồng đều ở trạng thái chờ thì khi đó trình thu thập sẽ
dừng lại.
2.2.2 Các thuật toán thu thập dữ liệu
- Thu thập dữ liệu theo Naive Best-First: sử dụng thuật toán tìm kiếm
theo nguyên tắc tính điểm số cho các URL. Điểm số của một URL được tính
bằng phương pháp độ tương đồng cosin của trang Web tương ứng và truy vấn
mà người sử dụng đưa ra, độ tương đồng cosin là tính độ tương đồng giữa 2
vector n chiều bằng cách tìm osin góc giữa chúng, phương pháp đo độ tương
đồng cosin được dùng để so sánh một truy vấn với một trang văn bản. Độ tương
đồng của trang p và truy vấn q được tính bằng công thức:
Độ tương đồng (p,q) = cos(vp, vq) = (v_p*v_q)/(|(|v_p |)|*||v_q ||)
Trong đó vp, vq là các vector đại diện được tính dựa trên tần số phát sinh
(term frequency). Tần số phát sinh có thể hiểu là số lần xuất hiện của các từ truy
vấn q trong trang p.
Vp*Vq là tích vô hướng của 2 vector; ║v║ là giá trị độ dài Euclid của vector v.
Nếu độ tương đồng (p,q)= -1 tức là khác nhau tuyệt đối.
Nếu độ tương đồng (p,q)= 0 tức là độc lập với nhau.
Nếu độ tương đồng (p,q)= 1 tức là chính xác tuyệt đối.



12

0 < độ tương đồng (p,q) < 1 tức là trang p có liên quan đến truy vấn q.
-1 < độ tương đồng (p,q) < 0 tức là trang p không có liên quan đến truy vấn
q. Quá trình thu thập dữ liệu dùng trong trình thu thập tuần tự được thực hiện
như sau:
Bước 1: Sắp xếp URL theo thứ tự giảm dần điểm số. Lấy ra URL đầu tiên
trong danh sách.
o Nếu có qua Bước 2.
o Nếu không qua Bước 5.
Bước 2: Lấy trang tương ứng với URL qua HTTP hoặc HTTPS.
o Nếu có qua Bước 3.
o Nếu không quay lại Bước 1 lấy URL tiếp theo.
Bước 3: Kiểm tra xem trang này đã được thăm chưa?
o Nếu chưa qua Bước 4.
o Nếu rồi quay lại Bước 1 lấy URL tiếp theo.
Bước 4: Đánh dấu trang này đã được thăm. Bóc tách trang và tìm các liên
kết có trong trang này.
o Nếu có, thêm các liên kết vào cuối danh sách. Quay lại Bước 3.
o Nếu không quay lại Bước 1 lấy URL tiếp theo.
Bước 5: Kết thúc.
- Thu thập dữ liệu theo chiều sâu (Depth-first Search):
Là thuật toán tìm kiếm bằng cách mở rộng nút đồ thị theo chiêu sâu. Quá
trình thu thập dữ liệu theo chiều sâu được thực hiện như sau:
Bước 1: Lấy URL đầu tiên trong danh sách (Frontier) để thu thập.
o Nếu có qua Bước 2.
o Nếu không qua Bước 5.
Bước 2: Lấy trang tương ứng với URL qua HTTP hoặc HTTPS.
o Nếu có qua Bước 3.

o Nếu không quay lại Bước 1 lấy URL tiếp theo.


13

Bước 3: Kiểm tra xem trang này đã được thăm chưa?
o Nếu chưa qua Bước 4.
o Nếu rồi quay lại Bước 1 lấy URL tiếp theo.
Bước 4: Đánh dấu trang này đã được thăm. Bóc tách trang và tìm các liên
kết có trong trang này.
o Nếu có, thêm các liên kết vào đầu danh sách. Quay lại Bước 3.
o Nếu không quay lại Bước 1 lấy URL tiếp theo.
Bước 5: Kết thúc
- Thu thập dữ liệu theo chiều rộng (Breath-First Search): Là thuật toán
tìm kiếm bằng cách mở rộng đỉnh đồ thị theo chiều rộng. Quá trình được thực
hiện như sau:
Bước 1: Lấy URL đầu tiên trong danh sách (Frontier) để thu thập.
o Nếu có qua Bước 2.
o Nếu không qua Bước 5.
Bước 2: Lấy trang tương ứng với URL qua HTTP hoặc HTTPS.
o Nếu có qua Bước 3.
o Nếu không quay lại Bước 1 lấy URL tiếp theo.
Bước 3: Kiểm tra xem trang này đã được thăm chưa?
o Nếu chưa qua Bước 4.
o Nếu rồi quay lại Bước 1 lấy URL tiếp theo.
Bước 4: Đánh dấu trang này đã được thăm, bóc tách trang và tìm các liên
kết có trong trang này.
o Nếu có thêm các liên kết vào cuối danh sách, quay lại Bước 3.
o Nếu không quay lại Bước 1 lấy URL tiếp theo.
Bước 5: Kết thúc

- Thu thập dữ liệu theo ngẫu nhiên:
Bước 1: Lấy URL ngẫu nhiên trong danh sách (Frontier) để thu thập.
o Nếu có qua Bước 2.


14

o Nếu không qua Bước 5.
Bước 2: Lấy trang tương ứng với URL qua HTTP hoặc HTTPS.
o Nếu có qua Bước 3.
o Nếu không quay lại Bước 1 lấy URL tiếp theo.
Bước 3: Kiểm tra xem trang này đã được thăm chưa?
o Nếu chưa qua Bước 4.
o Nếu rồi quay lại Bước 1 lấy URL tiếp theo.
Bước 4: Đánh dấu trang này đã được thăm, bóc tách trang và tìm các liên
kết có trong trang này.
o Nếu có, thêm các liên kết vào cuối danh sách, quay lại Bước 3.
o Nếu không quay lại Bước 1 lấy URL tiếp theo.
Bước 5: Kết thúc
2.3 Lược sử và kho lưu trữ trang
Với hai phương pháp thu thập dữ liệu đã nêu ở phần trên, hệ thống cần một
lược sử thu thập dữ liệu. Lược sử thu thập dữ liệu là danh sách đánh dấu theo
thời gian các URL được lấy bởi trình thu thập. Lược sử được lưu trữ nhằm cung
cấp cho một tra cứu nhanh để kiểm tra một trang URL đã được ghé thăm hay
chưa, ghé thăm bởi thiết bị có địa chỉ IP bao nhiêu, thời điểm cuối cùng ghé
thăm là khi nào…
Khi một trang được lấy nó phải được lưu trữ và lập chỉ mục nhằm mục đích
phục vụ cho cách ứng dụng sau này. Kho dữ liệu này có thể dùng bởi công cụ
tìm kiếm, trình khai phá dữ liệu...
Có hai lựa chọn khi lưu trữ trang Web sau khi chúng được thu thập: Lưu trữ

dạng thô hoặc dạng đã qua phân tích, xử lý. Dạng thô là toàn bộ nội dung HTML
trang Web, có thể bao gồm hình ảnh và Video. Với dạng này, hệ thống sẽ phải
tốn rất nhiều bộ nhớ để lưu trữ. Tuy nhiên, kho sẽ chứa đựng những giá trị mà
người phân tích dữ liệu hiện tại chưa nhìn thấy hoặc cần đến. Sau này, khi họ cần
đến một thuộc tính nào đó của kho dữ liệu, họ có thể phân tích, khai phá kho dữ


×