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

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ử (An antianticrawling solution for data collection from ecommerce websites): 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 (2.81 MB, 73 trang )

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

NGUYỄN TẤN NHÂN

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Ử
(An anti – anti – crawling solution for data collection from e-commerce websites)

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
***

NGUYỄN TẤN NHÂN

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Ử
(An anti – anti – crawling solution for data collection from e-commerce websites)

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
Sau khoảng thời gian học tập và rèn luyện tại trường Đại học Lạc Hồng, dưới
sự chỉ bảo tận tình của quý thầy cô trong quá trình học tập, nay em đã hoàn tất được
luận văn tốt nghiệp cao học, em xin bày tỏ lòng biết ơn chân thành và sâu sắc đến Ban
giám hiệu, phòng sau đại học trường Đại học Lạc Hồng, đặc biệt là PGS. TS. Đặng
Trần Khánh người đã trực tiếp hướng dẫn tận tình, định hướng, giúp đỡ em với những
chỉ dẫn khoa học quý giá trong suốt quá trình triển khai, nghiên cứu và hoàn thành đề
tài “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ử (An anti-anticrawling solution for data collection from e-commerce websites)”.
Một lần nữa em xin bày tỏ lòng chân thành cảm ơn quý Thầy Cô giáo đã trực
tiếp giảng dạy, truyền đạt những trãi nghiệm quý báu và kiến thức khoa học chuyên
ngành cho bản thân em trong suốt thời gian qua.
Và em xin gửi lòng biết ơn chân thành đến những góp ý vô cùng thiết thực và
nhiệt tình từ bạn bè, đồng nghiệp đã giúp đỡ em hoàn thành luận văn này.
Xin chân thành cảm ơn !
Đồng Nai, tháng 06 năm 2017
Học viên thực hiện

Nguyễn Tấn Nhân


ii

LỜI CAM ĐOAN
Em xin cam đoan luận văn được thực hiện với đề tài “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ử (An anti-anti-crawling solution for data

collection from e-commerce websites)” là kết quả của quá trình học tập, nghiên cứu
khoa học độc lập, nghiêm túc.
Các giải pháp đưa ra trong luận văn là trung thực chưa từng được sử dụng, có
nguồn gốc rõ ràng, phát triển từ các giải pháp, tạp chí, các công trình nghiên cứu đã
được công bố, trên các website từ internet. Mọi sự giúp đỡ cho việc thực hiện luận văn
này đã được em cảm ơn chân thành và được trích dẫn có chỉ rõ các tác giả nếu có sử
dụng các kết quả nghiên cứu có liên quan.
Các phương pháp nghiên cứu trong luận văn được rút ra từ cơ sở lý luận và quá
trình nghiên cứu.
Đồng Nai, tháng 06 năm 2017
Học viên thực hiện

Nguyễn Tấn Nhân


iii

TÓM TẮT LUẬN VĂN
Đề tài: 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ử (An anti –
anti – crawling solution for data collection from e – commerce websites)
Ngành: Công nghệ thông tin

Mã số: 60.48.02.01

Học viên: Nguyễn Tấn Nhân
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 ngăn chặn thu thập thông tin website thương mại
điện tử.

 Tìm hiểu các giải pháp và chiến thuật vượt qua ngăn chặn thu thập thông
tin.
 Nghiên cứu cách thức phát triển ứng dụng web với giao diện thân thiện
người dùng.
 Hiện thực các giải thuật vượt qua ngăn chặn thu thập thông tin trên nền tảng
web và di động.
 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ử: Tìm hiểu
từ các nghiên cứu trước đây.
 Tìm hiểu các báo cáo, bài báo khoa học cũng như các trang web thực tế có
hiện thực các giải pháp ngăn chặn thu thập thông tin: Thông qua sách, báo,
các website đang áp dụng giải pháp chống thu thập…
 Nghiên cứu các giải thuật vượt qua ngăn chặn thu thập thông tin website:
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,…


iv
 Đề 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ử: Xây dựng ứng dụng trên web từ
đơn giản đến phúc tạp, tìm kiếm và sửa lỗi ứng dụng; chạy kiểm thử.
3. Đánh giá về mặt khoa học của kết quả
 Tìm hiểu các giải pháp ngăn chặn thu thập dữ liệu
 Đề xuất, hiện thực, kiểm thử các giải pháp vượt qua những ngăn chặn.
 Đưa ra giải pháp song song, khả năng mở rộng nhằm mục đích cải thiện
hiệu suất hệ thống.
4. Những vấn đề còn tồn tại so với nội dung được giao

 Hiện tại hệ thống chỉ có thể tích hợp với các thiết bị Android, chưa hỗ trợ
một lượng lớn các thiết bị iOS. Cần học thêm Object – C hoặc Swift, trang
bị thêm Macbook để có thể tạo ra ứng dụng chạy trên các thiết bị iOS.
 Giải pháp thay đổi Proxy Server chỉ mới thực hiện trên web, chưa có trên
Android.
 Kiểm thử còn ít. Để luận văn trở thành sản phẩm hoàn chỉnh thì tôi cần phải
kiểm thử nhiều hơn, chi tiết hơn.
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

Nguyễn Tấn Nhân


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
DANH MỤC BẢNG....................................................................................ix
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI ........................................................... 1
1.1

Giới thiệu về đề tài ............................................................................................ 1

1.2


Lý do chọn đề tài ............................................................................................... 1

1.3

Mục tiêu chọn đề tài ......................................................................................... 2

1.4

Phương pháp thực hiện .................................................................................... 3

1.5

Cấu trúc luận văn ............................................................................................. 3

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT ............................................................ 5
2.1

Hệ thống thu thập thông tin thương mại điện tử .......................................... 5

2.2

Các chiến lược thu thập dữ liệu ...................................................................... 8

2.3

Các giải pháp ngăn chặn thu thập thông tin ................................................ 12

2.3.1


Ngăn chặn bằng cách mã hóa nội dung của trang web ........................ 12

2.3.2

Ngăn chặn bằng cách thử thách trả lời câu hỏi ở trang đầu tiên ........ 13

2.3.3

Ngăn chặn bằng cách giới hạn và giám sát truy cập ............................ 14

2.3.4

Xác định địa chỉ IP, vị trí địa lý xuất phát kết nối đến web server ..... 15

2.3.5

Thời gian lưu lại trang web của một khách hàng (Time on page) ....... 16

2.3.6

Cách thức người dùng duyệt web thương mại điện tử ......................... 16

2.3.7

Xác định kết nối đến web server từ hệ điều hành, trình duyệt gì ....... 17

2.3.8

Ngăn chặn bằng cách thiết lập cấu hình trong tập tin robots.txt ........ 20


2.4

Giải pháp vượt qua sự ngăn chặn thu thập dữ liệu..................................... 21

2.5

Hệ quản trị cơ sở dữ liệu ................................................................................ 21

2.5.1

ElasticSearch ............................................................................................ 21

2.5.2

MongoDB .................................................................................................. 29

2.6

Nền tản phát triển website ............................................................................. 34

2.6.1

NodeJS ...................................................................................................... 34


vi
2.6.2

Ưu điểm của NodeJS ............................................................................... 35


2.6.3

Nhược điểm của NodeJS ......................................................................... 36

2.6.4

ExpressJS .................................................................................................. 37

2.6.5

SocketIO ................................................................................................... 37

2.6.6

Xpath ......................................................................................................... 39

2.6.7

CSS Selector ............................................................................................. 42

2.7

Ứng dụng Android .......................................................................................... 43

2.7.1

Môi trường phát triển Android Studio .................................................. 44

2.7.2


Ngôn ngữ lập trình Java .......................................................................... 45

CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ...................... 46
3.1

Phân tích hệ thống .......................................................................................... 46

3.3.1

Giải pháp chống Crawler ........................................................................... 46

3.3.2

Giải pháp hiệu suất Anti – anti – Crawler ................................................ 51

3.2

Thiết kế hệ thống ............................................................................................ 52

3.3

Cơ sở dữ liệu.................................................................................................... 53

CHƯƠNG 4 HIỆN THỰC HỆ THỐNG ................................................. 55
4.1

Ứng dụng website ........................................................................................... 55

4.2


Ứng dụng mobile............................................................................................. 57

CHƯƠNG 5 KẾT LUẬN .......................................................................... 59
5.1

Kết quả đạt được ............................................................................................ 59

5.2

Hướng phát triển ............................................................................................ 59

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

ASP.NET

Active Server Pages

BSON

Binary JSON


CSS

Cascading Style Sheets

CSDL

Database

Cơ sở dữ liệu

XHTML

Extensible HyperText Markup
Language

Ngôn ngữ đánh dấu siêu liên
kết mở rộng

XML

Extensible Markup Language

Ngôn ngữ đánh dấu mở rộng

XSL

Extensile – Style – Langugue

HTML


Hypertext Markup Language

PHP

Hypertext Preprocessor

HTTP

HyperText Transfer Protocol

ID

Identification

Định danh

IP

Internet Protocol

Giao thức Internet

JS

Javar Script

JSON

Javascript Object Notation


JSP

JavaServer Pages

LAMP

Linux – Apache – MySQL – PHP

MS SQL

Microsoft Structure Query Language

Ngôn ngữ truy vấn cấu trúc


viii

MVC

Module – View – Controller

OOP

Object – Oriented Programming

PDF

Portable Document Format


RSS

Really Simple Syndication

RDBMS

Relational Database Management
System

REST API

Representational State Tranfer
Application Programming Interface

TCP

Transmission Control Protocol

URI

Uniform Resource Indentifier

URL

Uniform Resource Locator

VPS

Virtual Private Server


WYSIWYG What You See Is What You Get

Lập trình hướng đối tượng

Hệ quản trị cơ sở dữ liệu quan
hệ

Giao thức điều khiển truyền

Máy chủ riêng ảo
Giao diện tương tác tức thời mắt thấy tay làm


ix

DANH MỤC BẢNG
Bảng 2.1. Qui định cú pháp của Xpath
Bảng 2.2. Qui định cú pháp sử dụng tên Axis
Bảng 2.3. Các hàm trong Xpath


x

BẢNG DANH MỤC HÌNH
Hình 2.1. Mô hình trình thu thập đa luồng
Hình 2.2. Trang welcome của trang web sinhvienit.net
Hình 2.3. Trực quan hóa truy cập web server
Hình 2.4. Vị trí IP xác định vị trí địa lý
Hình 2.5. Minh họa lịch sử duyệt web
Hình 2.6. Địa chỉ URL của một sản phẩm trên trang web vật giá

Hình 2.7. Thống kê hệ điều hành tháng 4/2017
Hình 2.8. Thống kê thị trường hệ điều hành trên thiết bị di động
Hình 2.9. Thống kê thị trường trình duyệt ở Việt Nam từ 4/2016-4/2017
Hình 2.10. Mô hình kiến trúc đơn giản cluster – node – shard
Hình 2.11. Mô phỏng quá trình lưu trữ, xóa dữ liệu của ElasticSearch.
Hình 2.12.Mô phỏng quá trình lấy dữ liệu theo id của Document.
Hình 2.13. Sơ đồ mô tả cách thực hiện tìm kiếm của ElasticSearch
Hình 2.14. Collection trong MongoDB
Hình 2.15. So sánh giữa RDBMS và MongoDB
Hình 2.16. Mô hình dữ liệu tham chiếu
Hình 2.17. Mô hình dữ liệu nhúng.
Hình 2.18. Cơ chế hoạt động MongoDB
Hình 2.19. Mức độ rủi ro khi sử dụng NodeJS
Hình 2.20. Mô hình thể hiện cấu trúc node trong Xpath
Hình 3.1. Giả vị trí địa lý
Hình 3.2. Hệ điều hành phổ biến
Hình 3.3. Các trình duyệt web phổ biến nhất


xi
Hình 3.4. Kiến trúc hệ thống
Hình 3.5 Thiết kế cơ sở dữ liệu hệ thống
Hình 4.1. Thu thập dữ liệu website thương mại điện tử
Hình 4.2. Website quản lý các trang web cần thu thập dữ liệu
Hình 4.3. Website quản lý danh mục các trang web cần thu thập dữ liệu
Hình 4.4. Website quản lý thông tin danh mục website
Hình 4.5. Kết nối web server nhận tác vụ
Hình 4.6. Giả lập trình duyệt Chrome trên hệ điều hành Windows 10
Hình 4.7. Ứng dụng Android thu thập dữ liệu website thương mại điện tử
Hình 4.8. Ngắt kết nối web server



1

CHƯƠNG 1
GIỚI THIỆU ĐỀ TÀI
1.1

Giới thiệu về đề tài
Hiện nay các crawler, spider hay các robot có khả năng thu thập dữ liệu từ các

trang web đã không còn xa lạ gì. Các trình thu thập này có khả năng thu thập thông tin
với các chiến lược khác nhau như thu thập dữ liệu theo chiều sâu, chiều rộng, theo
ngẫu nhiên và theo lựa chọn tốt nhất ngây thơ…
Các trình thu thập này thường hoạt động liên tục làm cho tài nguyên mạng bị
khai thác quá mức khi các robot yêu cầu một lượng lớn thông tin trong khoảng thời
gian rất ngắn. Kết quả là gây nên tình trạng thiếu tài nguyên hay băng thông cho những
ứng dụng khác. Bởi máy chủ (server) vừa phải phục vụ yêu cầu của robot vừa cung cấp
dịch vụ cho người dùng thực, khi đó yêu cầu của robot tăng lên bao nhiêu thì dịch vụ
được máy chủ cung cấp giảm xuống bấy nhiêu. Những lúc robot thu thập thông tin,
máy chủ bị chậm lại làm cho việc đáp ứng truyền tải thông tin sụt giảm thấy rõ rệt.
Biết được điều này, các nhà quản trị website không muốn tài nguyên máy chủ bị
sử dụng bởi các crawler hay các robot, mà tài nguyên này phải được sử dụng cho
những người dùng thật sự để hoạt động thương mại càng tốt hơn về chất lượng và
doanh số. Do đó, các nhà quản trị đã thực hiện và áp dụng các biện pháp để ngăn chặn
việc lấy thông tin của các crawler hay của robot. Và dĩ nhiên việc ngăn chặn này dẫn
đến việc các nhà đầu tư hoặc các doanh nghiệp không thể nắm bắt được nhu cầu của thị
trường đầy biến động dẫn đến đầu tư không còn hiệu quả và tổn thất nghiêm trọng. Vì
vậy, mục tiêu của đề tài là nghiên cứu giải thuật vượt qua sự ngăn chặn thu thập thông
tin thị trường thương mại điện tử.

1.2

Lý do chọn đề tài
Đề tài luận văn thạc sĩ “Hệ thống thu thập dữ liệu thị trường thương mại điện

tử” của học viên cao học Tạ Thúc Toàn, đây là nghiên cứu về web crawler và hiện thực
chúng trên một hệ thống website giúp thu thập thông tin các trang web thương mại điện
tử tại thị trường Việt Nam. Điểm yếu của hệ thống này là chỉ tập trung vào thu thập
thông tin website thương mại điện tử nhưng chưa vượt qua được các giải pháp ngăn


2
chặn thu thập thông tin. Trong khi đó, các nghiên cứu và ứng dụng giải pháp ngăn chặn
thu thập thông tin ngày càng nhiều. Vì vậy, giải pháp vượt qua sự ngăn chặn thu thập
thông tin này là mục tiêu chính của đề tài.
Một trong những nghiên cứu gần đây về giải pháp ngăn chặn thu thập thông tin
trên web là bài báo “System and method for preventing web crawler access” [5]. Ngoài
các giải pháp hạn chế số lượng truy cập web server từ một địa chỉ IP trong một khoản
thời gian nhất định, bài báo cũng đưa ra giải pháp chống crawler bằng phương pháp mã
hóa ở máy chủ và cung cấp giải pháp giải mã ở trình duyệt người dùng.
Một bài báo nữa cũng nói về giải pháp ngăn chặn thu thập thông tin trang web là
“System and method for implementing a robot proof Web site”. Ngăn chặn bằng cách
thử thách: trả lời câu hỏi ở trang welcome site, nếu thử thách vượt qua được tất cả thì
xác định đây không phải là các crawler hoặc robot và sẽ thực thi tất cả các yêu cầu
(request) đến web server. Ngược lại, sẽ ghi nhận địa chỉ IP của yêu cầu từ máy client
này và khởi chạy một bộ định thời gian ghi nhận thời điểm nhận được yêu cầu. Nếu
một yêu cầu mới tiếp theo được phát sinh thì sẽ kiểm tra có trùng IP đã được ghi nhận
trước đó hay không; nếu không thì sẽ cho phép thực hiện yêu cầu và ghi nhận logIP,
nếu trùng với IP đã được ghi nhận thì sẽ kiểm tra xem thời gian đã hết phiên (session)
chưa và nếu như chưa thì sẽ xóa bỏ yêu cầu mới này hoặc chuyển hướng; còn nếu như

đã hết phiên thì sẽ ghi logIP lại để cho việc kiểm tra.
Do đó, với mong muốn vượt qua được sự ngăn chặn thu thập thông tin thương
mại điện tử để có thể thu thập được thông tin từ các web site phục vụ cho việc nghiên
cứu thị trường, cũng như giúp các doanh nghiệp có thể đề ra các chiến lược đầu tư từ
thông tin lấy được đạt được hiệu quả tốt hơn, chính vì thế em đã chọn nghiên cứu và
thực hiện đề tài: “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ử (An anti – anti – crawling solution for data collection from e-commerce
websites)”.
1.3

Mục tiêu chọn đề tài
 Nghiên cứu và xây dựng các giải pháp vượt qua ngăn chặn thu thập thông
tin thị trường thương mại điện tử.


3
 Hiện thực nghiên cứu và kiểm thử thực tế.
1.4

Phương pháp thực hiện
+ Về lý thuyết:
Tìm hiểu cách thức thu thập thông tin website thương mại điện tử: Tìm hiểu từ

các nghiên cứu đã có. Nghiên cứu sơ lược cho thấy các giải pháp này bao gồm thu thập
thông qua ứng dụng website, ứng dụng mobile, ứng dụng console không giao diện chạy
trên máy chủ (Server) hay ứng dụng kết hợp với các trình duyệt web phổ biến
(Chrome, FireFox, …). Trong giai đoạn này, em có tìm hiểu và đánh giá từng cách
thức thu thập thông tin khác nhau.
Tìm hiểu các báo cáo, bài báo khoa học, cũng như các trang web thực tế có hiện
thực các giải pháp ngăn chặn thu thập thông tin: thông qua sách, báo, các website đang

áp dụng giải pháp chống thu thập, v.v… Phân tích, đánh giá từng cách thức chống thu
thập, xác định điểm mạnh, điểm yếu của từng giải pháp.
Nghiên cứu giải thuật vượt qua ngăn chặn thu thập thông tin website: nghiên
cứu từ các bài báo khoa học cũng như các giải pháp thực tế để vượt qua những giải
pháp chống thu thập đã nêu ở trên. Những giải thuật này cần khả dụng ở thị trường
Việt Nam.
Tìm hiểu 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: Hệ quản trị cơ sở dữ liệu có khả năng lưu trữ dữ liệu lớn của thị
trường đồng thời linh hoạt trước sự thay đổi và phong phú của dữ liệu. Mục tiêu tìm
hiểu là các hệ quản trị cơ sở dữ liệu NoSQL, xu hướng lưu trữ dữ liệu ngày nay.
+ Về thực nghiệm:
Đề xuất kiến trúc hệ thống và thực hiện kiểm thử: Xây dựng ứng dụng trên web
từ đơn giản đến phức tạp, tìm kiếm và sửa lỗi ứng dụng; chạy kiểm thử.
1.5

Cấu trúc luận văn
Ở Chương 1 là phần giới thiệu về đề tài, cũng như các hiện trạng và lý do cho

việc chọn thực hiện đề tài;
Chương 2 trình bày cơ sở lý thuyết về các hệ thống thu thập thông tin thương
mại điện tử đã được hiện thực từ các công trình nghiên cứu trước đây với những ưu


4
điểm và khuyết điểm, các chiến lược thu thập dữ liệu của các hệ thống thu thập dữ liệu,
trong chương này cũng giới thiệu về các giải pháp để ngăn chặn thu thập thông tin và
đề ra giải pháp vượt qua sự ngăn chặn; thêm vào đó là giới thiệu về các thành phần sẽ
được sử dụng để xây dựng hệ thống thu thập dữ liệu thương mại điện tử, cụ thể như là:
về hệ quản trị cơ sở dữ liệu được đánh giá là phù hợp cho việc lưu trữ thông tin thương
mại điện tử ở mục 2.5, nền tản để phát triển ứng dụng website ở mục 2.6, giới thiệu về

hệ điều hành Android cùng với môi trường, ngôn ngữ lập trình trên hệ điều hành
Android, iOS ở mục 2.7 để có thể phát triển những ứng dụng crawler hoặc phát triển
những ứng dụng có tích hợp crawler;
Chương 3 trình bày nội dung phân tích và thiết kế hệ thống thu thập dữ liệu trên
nền web dựa trên cơ sở lý thuyết đã trình bày ở chương 2; bên cạnh đó cũng đưa ra
trình bày các giải pháp để vượt qua sự ngăn chặn thu thập dữ liệu.
Chương 4 trình bày kết quả của việc hiện thực hệ thống được xây dựng thành
ứng dụng trên môi trường web và mobile bao gồm: xây dựng ứng dụng, lựa chọn sử
dụng hệ cơ sở dữ liệu phù hợp và kết quả của việc kiểm thử hệ thống trên môi trường
thực tế hoặc trên môi trường giả lập;
Cuối cùng là chương 5, là phần tổng kết các kết quả đạt được của luận văn, thêm
vào đó là phần đề xuất hướng phát triển cho đề tài (nếu có) để có thể cho thêm các kết
quả hoàn thiện hơn và đặt kết quả tối ưu hơn.


5

CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1

Hệ thống thu thập thông tin thương mại điện tử
Web crawler là một chương trình tự động tìm kiếm trên internet, một trình thu

thập web là một chương trình duyệt world wide web một cách có phương pháp, một
cách tự động. Web crawler là một loại bot hay còn gọi là con bọ tìm kiếm.
Trình thu thập web thu thập thông tin của các website bằng cách di chuyển từ
trang (page) này đến trang khác cùng trên một site hoặc đến các site khác dựa trên các
siêu liên kết (hyperlink) hay đường dẫn. Các chương trình thực hiện thu thập dữ liệu có
các tên gọi khác nhau như: robot, bọ web, crawler hay spider nhưng tên gọi chung vẫn

là trình thu thập web. Một trình thu thập web làm việc với một tốc độ rất nhanh và xử
lý thu thập thông tin của hàng triệu trang trong hàng ngàn site với thời gian ngắn.
Mục đích ban đầu của việc tạo ra các trình thu thập web chủ yếu là lấy nội dụng
các trang web hoặc các đường dẫn (URL) để lưu trữ và phục vụ cho các ứng dụng hoặc
công cụ tìm kiếm web (search engine) như Google, Ping, Yahoo Search,…

Hình 2.1. Mô hình trình thu thập đa luồng


6
Ở hình 2.1 bên trên là mô hình của một trình thu thập dữ liệu web thương mại
điện tử đa luồng với việc chỉ ra từng bước của cách thức thu thập dữ liệu, với mô hình
này web crawler thu thập dữ liệu bằng con đường trực tiếp.
Cách thức hoạt động của một trình thu thập web được bắt đầu bằng cách chọn
một hoặc một vài URL ứng với các trang web sẽ được ghé thăm đầu tiên hay thường
được gọi là trang hạt giống. Trình thu thập web sẽ thực hiện đọc cũng như lấy nội dung
trang web trên trang đầu tiên này và lọc ra các liên kết (Hyperlink) hay các URL có
trong nội dung của trang được lấy, sau đó nó đưa các liên kết được lọc ra này vào trong
một danh sách gọi là biên (Frontier). Frontier là một danh sách chứa các URL của các
trang chưa được ghé thăm, frontier có thể chứa hàng chục ngàn đến hàng trăm ngàn
trang. Mặc dù frontier có thể chứa rất nhiều trang nhưng nó cũng sẽ có một giới hạn
nào đó tùy thuộc vào khả năng lưu trữ phụ thuộc vào bộ nhớ của máy tính. Dựa trên
danh sách các URL chứa trong frontier, trình thu thập sẽ tiếp tục thực hiện để ghé thăm
tất cả các URL chưa duyệt này. Trình thu thập dữ liệu chỉ dừng lại khi đã thu thập đủ
số trang yêu cầu hoặc không còn URL nào trong frontier nữa [4].
Sau khi đã xử lý xong hết tất cả URL trong frontier thì tất cả nội dung các trang
cũng được lấy và được lưu trữ vào một cơ sở dữ liệu, và xem như không cần phải thu
thập thêm. Nhưng nội dung các trang web thì có khả năng thay đổi liên tục như xóa
trang trên site, di chuyển trang hoặc là cập nhật nội dụng trang vì thế thông tin phải
được thu thập liên tục và dĩ nhiên trình thu thập dữ liệu sẽ tiếp tục công việc thu thập

để cập nhật các thay đổi này.
Ngôn ngữ được sử dụng để xây dựng các trang web chủ yếu là HTML, XHTML
và mục đích của việc xây dựng các trang web là cho con người sử dụng, trên các trang
web có những thông tin có ích mà con người cần lấy và lưu trữ. Bên cạnh việc lấy tất
cả nội dung của một trang web (bao gồm cả mã HTML, XHTML) thì việc bóc tách dữ
liệu (Parsing) là không thể thiếu. Việc bóc tách này cũng không phải là điều đơn giản.
Trong các hệ thống search engine trình thu thập web làm công việc chính là duy
trì cơ sở dữ liệu được đánh chỉ mục, trả về giá trị và chỉ mục cho hàng triệu truy vấn từ
người dùng. Trong kinh doanh trình thu thập web dùng để lấy dữ liệu để phân tích,


7
nghiên cứu thị trường giúp các chủ đầu tư đưa ra các hướng phù hợp với xu thế nhu
cầu của con người cho việc đầu tư và phát triển các chiến lược dựa trên kết quả thu
được. Ngoài ra, chúng ta có thể sử dụng trình thu thập web để xây dựng các ứng dụng
cho việc tập trung thông tin, các trang web tập hợp thông tin, dựa trên cơ chế tự động.
Lấy tin tự động hiểu đơn giản nghĩa là sau khi đã đầu tư và phát triển được một bot hay
một tập đoàn bots (crawler) tương ứng với từng chức năng. Sau đó cho nó hoạt động,
nếu hoạt động tốt nó sẽ lấy tất cả những thông tin từ các nguồn sau đó xử lý hoặc lưu
trữ cho mục đích của người xây dựng nó (làm dữ liệu phân tích, đăng tải lên website,
chia sẻ lên data center,…).
Một số phần mềm tổng hợp tin tức đã từng được phát triển như:
-

Google Reader: Là công cụ tổng hợp tin hữu ích của Google. Để sử dụng thì
cũng khá đơn giản chỉ cần thêm địa chỉ URL hoặc RSS (Really Simple
Syndication) của nguồn tin muốn theo dõi và mỗi khi nguồn tin thay đổi thì
sẽ được Google Reader lấy về tự động. Google Reader có thể chia sẻ thông
tin trên các mạng xã hội: Facebook, Twitter, Blogger… Google Reader
ngưng hoạt động vào ngày 01 tháng 7 năm 2013.


-

iGoogle (Formerly Google Personalized Homepage): Là dịch vụ trang chủ
tìm kiếm cá nhân hóa với tính năng “gadget maker” và khả năng hiển thị kết
quả tìm kiếm dựa trên từng vùng, nó cho phép người sử dụng thiết lập một
trang chủ tìm kiếm theo ý thích. Các Gadget bao gồm: thời tiết, chứng
khoán, tin tức và nhiều tiện ích khác: xem RSS từ site khác, khung tìm kiếm
của wikipedia,… iGoogle ngưng hoạt động vào ngày 01 tháng 11 năm 2013.

-

Yahoo Pipe: Là công cụ tương tác qua web hỗ trợ xử lý và tổng hợp các
nguồn tin từ Internet cho phép người dùng tổng hợp thông tin từ các nguồn
khác nhau, lọc cũng như xem tin theo các lĩnh vực mà người dùng quan tâm
đến, đồng thời nó cũng hỗ trợ nhiều nguồn tin khác: URL, RSS, Yahoo
Search,… Yahoo Pipes ngưng hoạt động vào ngày 30 tháng 9 năm 2015.

Một số phần mềm tổng hợp tin tức và thống kê phát triển hiên nay:


8
-

Google Trends: Là một công cụ hoàn toàn miễn phí của Google và cho phép
các SEOER thấy được các thống kê lưu lượng của từ khóa tìm kiếm tại từng
thời điểm tại từng quốc gia. Nó giúp cho các SEOER đưa vào các từ khóa
thích hợp có lượt tìm kiếm cao cho quá trình Onpage Website. Cách hoạt
động cụ thể bằng việc chọn một từ khóa hoặc một bộ từ khóa liên quan đến
ngành nghề lĩnh vực đang kinh doanh và nhập chúng vào Google Trends, sau

đó Google Trends sẽ so sánh và đánh giá kết quả của lượng tìm kiếm từ khóa
này, từ đó các SEOER sẽ có cái nhìn tổng thể về từ khóa cho việc đưa từ
khóa này vào Website của mình.

-

Bingbot: Là tên của Bing do Microsoft triển khai vào tháng 10 năm 2010 để
hỗ trợ cho Bing Search Engine, nó thay thế cho MSNbot. Bingbot là một
web-crawling robot (kiểu internal bot) mục đích dùng để thu thập dữ liệu từ
web để xây dựng một chỉ mục có thể tìm kiếm cho Bing Search Engine. Một
kiểu chuỗi User-Agent cho Bingbot là “Mozilla/5.0 (compatible;
bingbot/2.0; + để web server có thể báo
cho Webmaster biết được “ai” yêu cầu một tập tin. Mỗi Webmaster có thể
sử dụng định danh “bingbot” để cho phép hoặc không cho phép thực hiện
truy cập, nếu không muốn cấp quyền truy cập có thể sử dụng “tiêu chuẩn
loại trừ robot (Robots Exclusion Standard)” hoặc có thể dựa vào máy chủ
Web để thực hiện ngăn chặn.

-

Googlebot: Là phần mềm bot tìm kiếm sử dụng bởi Google cho việc thu thập
dữ liệu từ web để xây dựng một chỉ mục có thể tìm kiếm cho Google Search
Engine. Nếu một Webmaster muốn chặn thông tin trên website của họ cho
Googlebot hoặc là những hành vi của Spider họ có thể thực hiện với những
chỉ thị trong tập tin Robots.txt hoặc bằng việc thêm thẻ meta tag (name = “Googlebot” content = “nofollow” />) vào trang Web. Googlebot
yêu cầu đến Web Servers được định danh bởi chuỗi User-Agent chứa
“Googlebot” và một địa chỉ host chứa “googlebot.com”.

2.2


Các chiến lược thu thập dữ liệu


9
Quá trình thu thập thông tin chính là quá trình duyệt đệ quy dựa vào các liên kết
(Hyperlink) giống như trên một đồ thị. Đỉnh (Node) của đồ thị chính là các trang
(Page) và các cạnh của đồ thị sẽ là các liên kết. Vì vậy, các thuật toán tìm kiếm trên đồ
thị là nền tản cho các giải pháp của chiến thuật thu thập dữ liệu [4].
-

Chiến lược thu thập dữ liệu theo chiều sâu: Dùng thuật toán tìm kiếm
bằng cách mở rộng các đỉnh đồ thị theo chiều sâu (Depth – First Search):
Bước 1: Từ frontier lấy ra URL đầu tiên trong danh sách để xử lý
o Nếu URL để lấy ra tồn tại thì thực hiện bước 2
o Ngược lại, kết thúc ở bước 5
Bước 2: Thực hiện lấy trang (Page) ứng với URL lấy được ở bước 1 thông
qua HTTP.
o Nếu trang tồn tại thì qua bước 3
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 3: Thực hiện kiểm tra trang được chọn đã được viếng thăm chưa?
o Nếu chưa thực hiện bước 4
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo
Bước 4: Đánh dấu trang là đã được viếng thăm, bóc tách và tìm các liên kết
có trong trang
o Nếu tìm thấy các liên kết thì sẽ thêm vào đầu danh sách của frontier.
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 5: Kết thúc.

-


Chiến lược thu thập dữ liệu theo chiều rộng: Dùng thuật toán tìm kiếm
bằng cách mở rộng đỉnh đồ thị theo chiều rộng (Breath – First Search):
Bước 1: Từ frontier lấy ra URL đầu tiên trong danh sách để xử lý
o Nếu URL để lấy ra tồn tại thì thực hiện bước 2
o Ngược lại, kết thúc ở bước 5
Bước 2: Thực hiện lấy trang (Page) ứng với URL lấy được ở bước 1 thông
qua HTTP.
o Nếu trang tồn tại thì qua bước 3


10
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 3: Thực hiện kiểm tra trang được chọn đã được viếng thăm chưa?
o Nếu chưa thực hiện bước 4
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo
Bước 4: Đánh dấu trang là đã được viếng thăm, bóc tách và tìm các liên kết
có trong trang
o Nếu tìm thấy các liên kết thì sẽ thêm vào cuối danh sách của frontier.
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 5: Kết thúc.
-

Chiến lược thu thập dữ liệu theo ngẫu nhiên: Dùng thuật toán tìm kiếm
tối ưu bằng cách mở rộng đỉnh hứa hẹn nhất theo một quy tắc nào đó (Best –
First Search):
Bước 1: Từ danh sách URL trong frontier lấy ra một URL ngẫu nhiên để thu
thập.
o Nếu URL lấy ra tồn tại thì thực hiện bước 2.
o Ngược lại, kết thúc ở bước 5.

Bước 2: Thực hiện lấy trang (Page) ứng với URL lấy được ở bước 1 thông
qua HTTP.
o Nếu trang tồn tại thì qua bước 3
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 3: Thực hiện kiểm tra trang được chọn đã được viếng thăm chưa?
o Nếu chưa thực hiện bước 4
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo
Bước 4: Đánh dấu trang là đã được viếng thăm, bóc tách và tìm các liên kết
có trong trang
o Nếu tìm thấy các liên kết thì sẽ thêm vào cuối danh sách của frontier.
Quay lại bước 3.
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 5: Kết thúc


11
-

Chiến lược thu thập dữ liệu theo lựa chọn Naive – Best First: Dùng thuật
toán tìm kiếm theo quy tắc tính điểm số cho các URL (Naive – Best First).
Điểm số của một URL tính bằng phương pháp độ tương đồng Cosin (Cosine
Similarity) của trang tương ứng và truy vấn mà người 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 Cosin
góc giữa chúng, phương pháp độ 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 một trang p và truy
vấn q được tính bằng công thức:
Độ 𝑡ươ𝑛𝑔 đồ𝑛𝑔 (𝑝, 𝑞) = cos(𝑣𝑝 , 𝑣𝑞 )

𝑣𝑝 ∗ 𝑣𝑞
||𝑣𝑝 || ∗ ||𝑣𝑞 ||


Trong đó:
o vp, vq là các vector đại diện được tính dựa trên tầng số phát sinh
(Term Frequency), tầng số phát sinh là số lần xuất hiện của các từ
truy vấn q trong trang p;
o vp, vq là tích vô hướng của 2 vector;
o ||v|| là giá trị độ dài Euclid của vector v;
Nếu độ tương đồng (p,q) = -1 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;
Nếu: 0 < độ tương đồng (p,q) < 1 tức là trang p có liên quan đến truy vấn
q;
Nếu: -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ự thực hiện theo
các bước:
Bước 1: Sắp xếp các URL theo thứ tự giảm dần của điểm số và lấy ra URL
đầu tiên trong danh sách của frontier.
o Nếu URL lấy ra tồn tại thì thực hiện bước 2.
o Ngược lại, kết thúc ở bước 5.


12
Bước 2: Thực hiện lấy trang (Page) ứng với URL lấy được ở bước 1 thông
qua HTTP.
o Nếu trang tồn tại thì qua bước 3
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 3: Thực hiện kiểm tra trang được chọn đã được viếng thăm chưa?
o Nếu chưa thực hiện bước 4
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo

Bước 4: Đánh dấu trang là đã được viếng thăm, bóc tách và tìm các liên kết
có trong trang
o Nếu tìm thấy các liên kết thì sẽ thêm vào cuối danh sách của frontier.
Quay lại bước 3.
o Ngược lại, trở lại bước 1 để lấy URL tiếp theo.
Bước 5: Kết thúc.
Có nhiều cách thu thập dữ liệu khác sử dụng thuật toán theo lựa chọn tốt nhất và
chỉ khác nhau về quy tắc tính điểm số cho URL như: tìm kiếm tham ăn (Shark Search),
nhện thông tin (InfoSpiders) [4].
2.3

Các giải pháp ngăn chặn thu thập thông tin
Hiện nay, các giải pháp để ngăn chặn việc thu thập thông tin ngày càng nhiều và

với các cách thức đa dạng khác nhau, có thể kể đến một vài phương pháp ngăn chặn
như sau:
2.3.1 Ngăn chặn bằng cách mã hóa nội dung của trang web
Phương pháp này thực hiện bằng việc khi có một yêu cầu (Request) từ một trình
duyệt của Client (Internet Explorer, Firefox , Opera, Safari,…) thì máy chủ web sẽ
thực hiện tải trang và mã hóa nội dung của trang được yêu cầu, đồng thời thêm vào bên
trong các chỉ dẫn để thực hiện giải mã lại nội dung của trang web; và có thêm vào các
đánh dấu của HTML trong nội dung đã mã hóa. Sau khi hoàn tất quá trình Server sẽ
tiến hành gửi toàn bộ nội dung của trang web được yêu cầu về cho trình duyệt của
Client. Trình duyệt của Client nhận nội dung được đáp trả từ Server có kèm theo
hướng dẫn để giải mã lại nội dung nhận được. Khi nhận được nội dung này thì trình


×