1. Trang chủ
  2. » Luận Văn - Báo Cáo

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ĩ

73 108 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 2,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. 1.2 Lý do chọn đề tài Đề tài luận văn thạc sĩ “Hệ thống thu

Trang 1

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

Trang 2

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

Trang 3

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-anti-crawling 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

Trang 4

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

Trang 5

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,…

Trang 6

 Đề 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

PGS TS Đặng Trần Khánh Nguyễn Tấn Nhân

Trang 7

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

Trang 8

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

Trang 9

BẢNG DANH MỤC TỪ VIẾT TẮT

XHTML Extensible HyperText Markup

LAMP Linux – Apache – MySQL – PHP

MS SQL Microsoft Structure Query Language Ngôn ngữ truy vấn cấu trúc

Trang 10

MVC Module – View – Controller

OOP Object – Oriented Programming Lập trình hướng đối tượng

RDBMS Relational Database Management

System

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

hệ

REST API Representational State Tranfer

Application Programming Interface TCP Transmission Control Protocol Giao thức điều khiển truyền URI Uniform Resource Indentifier

WYSIWYG What You See Is What You Get Giao diện tương tác tức thời -

mắt thấy tay làm

Trang 11

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

Trang 12

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

Trang 13

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

Trang 14

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

Trang 15

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ử

Trang 16

 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

Trang 17

đ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

Trang 18

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

Trang 19

Ở 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,

Trang 20

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:

Trang 21

- 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; +http://www.bing.com/bingbot.htm)” để 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 (<meta 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

Trang 22

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

Trang 23

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

Trang 24

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

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

Trang 25

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

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

Trang 26

duyệt sẽ tự động thực thi theo hướng dẫn đính kèm để giải mã Các hướng dẫn giải mã

có thể là các đoạn mã JavaScript, vị trí các đoạn mã hướng dẫn này không theo một vị trí cố định nào trong nội dung của trang web được mã hóa vì vậy mà các crawler sẽ không thể xác định được các đoạn Script Sau khi hoàn tất việc giải mã thì nội dung sẽ được hiển thị lên trên trình duyệt và người dùng thực sự sẽ không cảm thấy được việc

mã hóa và giải mã khi họ duyệt các trang web

Ngoài ra, do một số website đều dùng các thư viện Framework Javascript vì chúng được phát triển cẩn thận, ít lỗi và được cộng đồng hỗ trợ Các thư viện này giúp cho quá trình phát triển web trở nên nhanh chóng, đẹp và ít chi phí bảo trì Điều quan trọng là một số web crawler không hỗ trợ Javascript nên quản trị website cấu hình để

dữ liệu sản phẩm thương mại điện tử chỉ được tải về thông qua Javascript Trang web tải dữ liệu về thông qua Javascript sẽ ngăn chặn crawler thu thập dữ liệu

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

Phương pháp này được thực hiện bằng cách buộc người dùng thực sự phải trả lời các câu hỏi ở một trang welcome site mà các câu trả lời có thể là chữ, hình ảnh, một con số,… 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

Ở hình 2.2 là một ví dụ về việc ngăn chặn crawler bằng cách đặt ra thử thách là phải nhấn chuột lên nút “Click vào đây để tiếp tục”, nếu thực hiện được điều này thì sẽ chuyển hướng đến trang chủ của website

Trang 27

Hình 2.2 Trang welcome của trang web sinhvienit.net

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

Máy chủ Server nhận được yêu cầu từ các máy khách Client Server sẽ tiến hành ghi nhận vào log file với yêu cầu của máy khách bao gồm: Định danh của máy khách (IP) và thời gian nhận được yêu cầu này (TimeStamp) Server sẽ so sánh định danh của máy khách với danh sách trì hoãn (Deny list) trên Server Từ chối đáp trả yêu cầu từ máy khách nếu định danh của máy khách tồn tại trong danh sách bị trì hoãn Nếu định danh của máy khách không tồn tại trong danh sách bị trì hoãn của Server thì sẽ tiến hành tính toán trị số yêu cầu của máy khách Client dựa vào định danh của máy khách Client từ trong nhật ký ghi nhận (Log Entry) và cả trong nhật ký đã được ghi nhận trước đó với cùng định danh của máy khách bao gồm tầng số và trị số dữ liệu yêu cầu được tích lũy; thêm định danh của máy khách Client vào danh sách trì hoãn nếu như ít nhất một yêu cầu của máy khách vượt hơn một trị giá được khai báo là lớn nhất cho phép yêu cầu từ máy khách Client; trong đó, giá trị yêu cầu lớn nhất được khai báo trước bao gồm: Tần số lớn nhất được yêu cầu và một ngưỡng truy cập dữ liệu (số lượng trang truy cập (Request Data Object is a Web page (đường link URL) and Data Object Identifier)) Giá trị lớn nhất của tần số yêu cầu bao gồm: Số lượng yêu cầu x1

trong một khoảng thời gian t1 và của x2 (SubRequest) ứng với t2

Trang 28

Hình 2.3 mô tả trực quan hóa cho mức độ truy cập đến web server từ các máy khách (có thể là người dùng thực sự hoặc cũng có thể là crawler)

Hình 2.3 Trực quan hóa truy cập web server

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

Web Server có thể dùng địa chỉ IP để xác định vị trí địa lý xuất phát kết nối đến Server, từ đó phân loại người dùng thật và crawler Với các crawler nằm trên các máy chủ cố định trong các công ty, trung tâm dữ liệu (data center) thì địa chỉ IP kết nối đến Web Server thường không đổi Địa chỉ IP này có thể dùng để xác định vị trí tương đối của máy chủ đó Lịch sử truy cập liên tục Web Server sẽ là bằng chứng cho người quản trị xác định crawler

Ví dụ ở hình 2.4 bên dưới, với một địa chỉ ip là 72.204.154.191 thì các web server sẽ xác định được vị trí của nơi truy cập đến nó là ở New Orleans – Mỹ

Hình 2.4 Vị trí IP xác định vị trí địa lý

Trang 29

Và với việc một trang web thương mại điện tử tiếng Việt nhưng có lượng lớn kết nối xuất phát từ một vị trí cố định ở Đài Bắc – Đài Loan, theo một lịch trình nhất định kết nối đến Web Server Điều này cho thấy xác suất rất cao đây là web crawler

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

Time on page là một thuộc tính đặc trưng của một trang web Thời gian truy cập trang của người dùng trên các trang web khác nhau sẽ có xu hướng khác nhau rất rõ rệt, nhất là đối với những trang thuộc lĩnh vực khác nhau Những trang tin tức với lượng nội dung trên trang lớn thường có Time on page cao hơn những trang có hàm lượng thông tin ít như những trang bán hàng Khách hàng lưu lại trang web càng lâu thì khả năng bán hàng của trang web thương mại điện tử càng cao Người quản trị luôn muốn khách hàng của họ lưu lại trang web càng lâu càng tốt Để cải thiện thuộc tính này thì người quản trị thường theo dõi các phiên truy cập của khách hàng Trung bình thời gian duyệt web của một khách hàng trên một trang là 2 ~ 5 phút Tuy nhiên, web crawler lại có thời gian truy cập web rất ngắn, chỉ vài phần trăm giây Điều này giúp quản trị viên phát hiện crawler để ngăn chặn

Hình 2.5 mô tả thời gian lưu lại trên trang của khách hàng với việc bắt đầu từ trang Home (page1) và lưu lại ở trang Home này là 1 giây tính từ thời điểm truy cập vào trang Home cho đến khi thực hiện thao tác chuyển đến Page2, tương tự thời gian lưu lại ở Page2 là 4 giây

Hình 2.5 Minh họa lịch sử duyệt web

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

Người dùng thật thường đến trang web thương mại thông qua hai con đường: Trực tiếp và gián tiếp Trực tiếp bằng cách điền trực tiếp địa chỉ trang web của sản

Trang 30

phẩm vào thanh địa chỉ (address bar) của trình duyệt Con đường này thường ít xẩy ra

vì địa chỉ trang web sản phẩm thường dài, khó có thể điền chính xác vào thanh địa chỉ

trình duyệt, hình 2.6 thể hiện URL của trang chi tiết sản phẩm của website vatgia.com

Hình 2.6 Địa chỉ URL của một sản phẩm trên trang web vật giá

Trong hình minh họa trên, địa chỉ URL trang web rất dài Người dùng không thể

nào gõ vào được Xác suất người dùng đi con đường trực tiếp với các URL này sẽ rất

thấp, crawler sẽ cao hơn

Những con đường gián tiếp sẽ phổ biến hơn, bao gồm thông qua trang danh mục

(Category), trang tìm kiếm (Google, Bing, Coc coc,… ) hay trang mạng xã hội

(Facebook, Twitter,…) Nếu web crawler không đi theo con đường gián tiếp thì khả

năng crawler này bị phát hiện sẽ cao

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

Ngày càng khó để phát hiện một kết nối đến web server có phải là từ người

dùng hay web crawler Quản trị viên thường phải kết hợp nhiều yếu tố lại để có thể xác

định Những yếu tố đó có thể kể đến là hệ điều hành và trình duyệt Đây là hai yếu tố

phụ thuộc vào thời gian và vị trí địa lý xuất phát kết nối

Xét yếu tố hệ điều hành, người dùng Việt Nam phần lớn sử dụng Windows trên

máy tính cá nhân và Android trên điện thoại Thống kê tháng 4 năm 2017 cho thấy điều

này

Trang 31

Hình 2.7 Thống kê hệ điều hành tháng 4/2017

Thống kế ở hình 2.7 bên trên cho thấy phần lớn kết nối đến Web Server là từ hệ

điều hành Windows, tiếp đến là Android và iOS Riêng Linux lại là hệ điều hành được

cài đặt trên hầu hết các Server Vì vậy, kết nối đến từ các hệ điều hành ít phổ biến sẽ

thuộc diện nghi ngờ là một web crawler

Ngoài ra, do yếu tố sức mạnh tính toán, lưu trữ dữ liệu,… nên các máy tính

thường được dùng để đặt web crawler Các thiết bị di động thì không như thế Thị

trường thương mại điện tử từ lâu đã định hướng phục vụ người dùng sử dụng thiết bị di

động trước, còn người dùng máy tính cá nhân sau Vì vậy, mức độ tin cậy sẽ cao hơn

khi kết nối xuất phát từ thiết bị di động so với máy tính

Riêng hệ điều hành trên thiết bị di động là cuộc chiến giữa iOS và Android Với

ưu thế của hai hệ điều hành này, những kết nối từ hệ điều hành khác sẽ đáng nghi ngờ,

cần phải ngăn chặn Việc thống kê so sánh giữa các hệ điều hành được thể hiện ở hình

2.8 bên dưới cho thấy hệ điều hành Android và iOS chiếm cao nhất so với các hệ điều

hành khác

Trang 32

Hình 2.8 Thống kê thị trường hệ điều hành trên thiết bị di động

Xét yếu tố trình duyệt, hình 2.9 minh họa thống kê thị trường trình duyệt ở Việt

Nam từ tháng 4 năm 2016 đến tháng 4 năm 2017

Hình 2.9 Thống kê thị trường trình duyệt ở Việt Nam từ 4/2016-4/2017

Trong thống kê trên cho thấy thị trường có sự ổn định ở phần trên và dưới

Chrome ổn định chiếm hơn 48% thị phần trình duyệt ở Việt Nam Một lượng ít người

Trang 33

dùng vẫn sử dụng Firefox, IE, trình duyệt mặc định trên Android, UC Browser… Đoạn giữa của đồ thị là sự cạnh tranh quyết liệt giữa Coc coc và Safari Một giải pháp đơn giản xác định một kết nối khả nghi khi nó xuất phát từ một trình duyệt không phổ biến,

ví dụ như khác Chrome, Coc coc, Safari hay Firefox

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

Người quản trị webste có thể hướng dẫn các Search Engine làm cách nào để thu thập thông tin trong một website bằng việc sử dụng một tập tin robots.txt Khi một Search Engine tiến hành thu thập thông tin trên một website thì trước hết nó sẽ tìm và đọc nội dung của tập tin robots.txt này, đồng thời sẽ tuân thủ theo các quy luật (Rules) được quy định bên trong Điều quan trọng để hiểu là những quy luật trong tập tin robots.txt không phải sử dụng cho việc theo dõi các bots và chúng là những dòng hướng dẫn (Guideline) Cho ví dụ, để thiết lập một Crawler-delay cho Google điều này phải được thực hiện trong công cụ Google Webmaster Tools Đối với những bots xấu

mà lạm dụng website thì nên xem xét làm thế nào để ngăn chặn người dùng xấu bởi User-Agent trong htaccess Tập tin robots.txt được đặt tại thư mục gốc (Root) của website Nếu tên miền (Domain) có tên là domain.com thì tập tin này sẽ nằm theo đường dẫn trên website là: http://domain.com/robots.txt; còn trên Server sẽ là /home/userna5/public_html/robots.txt Nếu tập tin robots.txt không tồn tại thì có thể tạo

và đặt tên như đã nêu Hầu hết các luật phổ biến sử dụng trong tập tin robots.txt được dựa trên User-Agent của các trình thu thập Search Engine, Search Engine sử dụng một User-Agent để định danh chúng khi thu thập thông tin Có 3 Search Engine phổ biến: GoogleBot, Yahoo ! Slurp, Bingbot; một số Search Engine bị khóa như: AhrefsBot, Baiduspider, Ezooms, MJ12bot, YandexBot,…

Search Engine crawler truy cập thông qua tập tin robots.txt: Có nhiều tùy chọn khi kiểm soát các crawler thông qua tập tin robots.txt

Một số luật (Rule) chỉ dẫn cho phép crawler thực thi như:

o User – Agent: Để chỉ ra rằng User-Agent nào được phép áp dụng, kí tự

“*” cho phép với bất kỳ User-Agent nào, ngược lại thì sẽ chỉ ra tên của User-Agent cho phép

Trang 34

o Disallow: Chỉ ra những tập tin hoặc thư mục nào mà các crawler không được phép lấy thông tin Nếu cho phép tất cả crawler được quyền truy cập thì để trống giá trị; ngược lại, điền giá trị là dấu “/”, ví dụ: Disallow: /cgi-bin; Disallow: /private hoặc Disallow: /contactus.html; Disallow: /adminlogin.html…

o Crawl-delay: Dùng để hạn chế thời gian crawler đánh chỉ mục hoặc lấy thông tin liên tục tránh làm lãng phí tài nguyên hệ thống của máy chủ

Ví dụ: Cho phép Googlebot truy cập đến thư mục /private/ và không cho phép các bots khác thì thực hiện như sau:

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

Quá trình thu thập dữ liệu từ các crawler gây nên tình trạng chiếm dụng tài nguyên của các website làm cho việc đáp ứng yêu cầu của người sử dụng thật sự bị chậm hoặc phải chờ xử lý nên các nhà quản trị đã sử dụng các giải pháp để ngăn chặn

sự thu thập dữ liệu của chúng Giải pháp vượt qua sự ngăn chặn thu thập dữ liệu (Anti – anti – crawling solution) chính là việc tìm ra cách, giải pháp để các crawler vẫn có thể lấy được dữ liệu từ các website thương mại điện tử về mà không bị trở ngại nào được đặt ra để ngăn chặn quá trình lấy dữ liệu của nó Các giải pháp này sẽ được trình bày cụ thể và chi tiết trong phần “3.3.1 Giải pháp chống Crawler” của chương 3

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

2.5.1 ElasticSearch

ElasticSearch là một công cụ tìm kiếm và phân tích trong thời gian thực, tức là nhanh chóng và chính xác Có thể áp dụng hay triển khai một cách dễ dàng vào các nguồn dữ liệu khác nhau, bao gồm các cơ sở dữ liệu như: MS SQL, MySQL, PostgreSQL,… hoặc các văn bản, thư điện tử, các tập tin PDF,… miễn là nguồn dữ liệu

Trang 35

đó có liên quan đến văn bản Shay Bannon đã phát triển ElasticSearch và dựa trên Apache 2.0, phiên bản cuối cùng của nó là 2.1.0 và nó cho phép chạy trên nhiều nền tản (Flatforms) khác nhau, nó cho phép người sử dụng khám phá số lượng dữ liệu rất lớn với một tốc độ rất nhanh ElasticSearch là một Search Engine và được gọi là

“Search & Analyzin in real time” bởi vì nó có khả năng trả về kết quả tìm kiếm nhanh chóng và chính xác trong một nguồn dữ liệu lớn (Big Data Source)

Các khái niệm chính của ElasticSearch:

- Node: Một Node là một Server riêng và là một phần trong Cluster, nó thực hiện việc lưu trữ dữ liệu và tham gia vào việc lập chỉ mục cũng như cho việc tìm kiếm Một Node được định danh bởi một tên riêng biệt và có thể thay đổi được tên này bằng cách thay đổi cấu hình trong tập tin

“elasticsearch.yul” Mỗi Node được thiết lập để tham gia (Join) vào một Cluster nào đó bằng việc khai báo Cluster Name Mặc định nó được Join vào “elasticsearch” Cluster Có nghĩa là khi khởi động một số Nodes trong cùng một mạng thì các Node sẽ nhìn thấy nhau và là các nhánh riêng của một cụm chung là “elasticsearch” Không giới hạn số Node trong một Cluster

- Cluster: Một Cluster là một tập hợp của một hoặc nhiều Nodes nắm giữ toàn bộ dữ liệu, cung cấp các chỉ mục (index) và khả năng tìm kiếm (Search) ở tất cả các Nodes Một Cluster có một tên duy nhất và có thể thay đổi tên mặc định của Cluster “elasticsearch” với một tên khác bằng việc cấu hình lại trong tập tin “elasticsearch.yul”, các Cluster có thể độc lập với các Cluster khác

- Index: Một Index là một tập hợp tài liệu (Documents) có đặc điểm chung Trong Cluster có thể có nhiều Indexes Tên định danh của Index dùng để liên hệ đến Index khi thực hiện tạo Index, Search, Update, Delete tài liệu (Document) trong nó và phải được viết thường không được viết hoa

Trang 36

- Type/Mapping: Một Type là một mục/phân vùng có nghĩa trong Index và trong một Index có thể định nghĩa một hoặc nhiều Types, một Type được định nghĩa cho Document gồm một số Fields

- Document: Một Document là một đơn vị thông tin cơ bản để đánh Index

Ví dụ, một Document cho một Custermer, một Document khác cho Product, hay cho một Order… Format dưới dạng JSON là được sử dụng cho các Document, bởi vì JSON là một dạng dữ liệu phổ biến mà tất cả các ngôn ngữ khác có thể hiểu được

- Shard: Mỗi Index có thể được chia thành nhiều Shards và mỗi Index có thể được sao lưu nhiều lần Mỗi khi được nhân bản (Replicas), mỗi Index sẽ có những Shards chính và những Shards nhân bản (sao chép từ Shards chính) Số lượng Shards chính và Replicas có thể được khai báo khi khai báo Index Sau khi Index được tạo, có thể thay đổi số lượng bản sao nhưng không thể thay đổi số Shards Mặc định, mỗi Index trong ElasticSearch được phân thành 5 Shards chính và Replica/1 Shard chính, tức là nếu trong Cluster có 2 Nodes thì mỗi Index sẽ có 5 Shards chính và

5 Replicas, tổng cộng là có 10 Shards

- Replicas: Một Shard chính có thể có hoặc có thể không có Replica Shard Chức năng Replica Shard cũng giống như Slave trong MySQL, nó đảm bảo khi Primary Shard có sự cố thì dữ liệu vẫn toàn vẹn và thay thế được Primary Shard, đồng thời làm tăng tốc độ đọc vì Replica có thể là nhiều hơn một

Hình 2.10 Mô hình kiến trúc đơn giản cluster – node – shard

Nhìn vào hình 2.10 ở trên chúng ta có thể thấy dữ liệu được lưu trữ ở Cluster với ba Nodes trong đó Node 1 là Node Master Có ba Primary Shard, hai

Ngày đăng: 16/08/2020, 10:35

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w