1. Trang chủ >
  2. Luận Văn - Báo Cáo >
  3. Kinh tế - Quản lý >

Chương 3 Các vấn đề và giải pháp cho hệ thống xây dựng và vận hành robot thu thập thông tin trên internet

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 (3.67 MB, 91 trang )


3.2. Môi trường tạo hướng dẫn cho robot



• Vấn đề

Như chúng em đã nói ở giải pháp cho vấn đề 1 thì tạo robot nghĩa là hướng dẫn cho

robot các hành động, các công việc mà robot cần làm đối với một nguồn thông tin

(tức một website) có sẵn chẳng hạn nhữ gõ một dòng text vào hộp textbox, chọn

một lựa chọn trong ô selectbox, hay click lên một link, một button, … Như vậy việc

hướng dẫn robot cần có một môi trường có khả năng online nghĩa là có khả năng

truy cập và thể hiện website để người dùng dựa trên website đó mà đưa ra hướng

dẫn cho robot các hành động cần thiết để robot có thể thực thi tự động nhằm đáp

ứng nhu cầu của mình. Rõ ràng, vấn đề đặt ra ở đây là làm thế nào để ta có được

một môi trường vừa trực quan lại vừa có khả năng online để việc hướng dẫn của

người dùng cho robot trở nên dễ dàng nhất có thể? Nhưng trước khi đi vào giải

pháp chúng ta cần phải tìm hiểu thế nào là một môi trường tạo hướng dẫn cho

Robot?

“Môi trường tạo hướng dẫn cho Robot chính là nơi mà người sử dụng hướng dẫn

cho các Robot các hành động mà Robot sẽ tương tác khi thực thi. Hay nói cách khác

nó chính là nơi ghi nhận lại các nhu cầu mà người sử dụng muốn Robot sẽ làm.”

• Giải pháp

Thông qua việc khảo sát chức năng cũng như giao diện của các hệ thống tương tự ở

chương 2 cùng với việc nghiên cứu sự hỗ trợ của các công nghệ hiện đại, hai giải

phải đã được đề xuất như sau:

• Giải pháp 1

Môi trường tạo robot phải có khả năng online để có thể đưa ra những hướng dẫn

cho robot đối với một website. Xuất phát từ yêu cầu này, giải pháp đầu tiên được đề

xuất: Môi trường tạo robot sẽ hoàn toàn dựa trên nền web người sử dụng sẽ thao tác

và hướng dẫn robot trên chính trình duyệt web của họ. Đối với giải pháp này hai

công nghệ nhóm xem xét là Silverlight và XBAP.

36



• Ưu điểm

Người sử dụng có thể dùng chính trình duyệt web của họ để tạo robot.

Có thể độc lập với hệ điều hành do ứng dụng chỉ phụ thuộc vào trình duyệt

web.

• Khuyết điểm

Tốc độ ắt hẳn chậm hơn so với hệ thống trên destop do phải thông qua

Internet và tương tác giữa máy khách và máy chủ.

Yêu cầu cao đối với hệ thống cung cấp dịch vụ. Máy chủ của hệ thống cung

cấp dịch vụ phải được cài đặt hỗ trợ các công nghệ mới như Silverlight hay

XBAP, đồng thời phải đủ mạnh để giao tiếp vời nhiều người dùng cùng lúc

đồng thời xử lý nhanh để đáp ứng yêu cầu của người dùng.

-



Máy tính của người sử dụng dịch vụ phải được cài đặt phần mềm để tương

thích với hệ thống. Ví dụ như plugin đối với Siverlight và .NET

Framework 3.5 đối với XBAP.

Không thể kiểm soát được các hành động của người dùng tương tác bên

ngoài trang web (tương tác với các hộp thoại tạo nên bởi javascript).

Không thể nhận biết được các hành động chuột và bàn phím.

• Giải pháp 2



Cũng xuất phát từ hai yêu cầu đối với việc tạo môi trường robot như thế nào, cùng

với tìm hiểu sự hỗ trợ của các công nghệ hiện tại, nhóm đã đề xuất giải pháp thứ 2

như sau. Công cụ tạo robot sẽ là một ứng dụng trên nền winform cho phép hệ thống

ghi nhận hành động của người dùng và người dùng tùy biến chức năng của robot.

• Ưu điểm

-



Tốc độ xử lý nhanh do các nghiệp vụ đều nằm trên máy của người dùng.

Có thể kiểm soát gần như tất cả hành động của người dùng bên trong hoặc

cả bên ngoài trang web bằng cách theo dõi các event của trang web hoặc

hook các sự kiện chuột và bàn phím.

• Khuyết điểm

37



-



Phụ thuộc vào hệ điều hành xây dựng ứng dụng.



 Như vậy, hai giải pháp trên đã đáp ứng được cả hai yêu câu của vấn đề đặt ra

trong khi tạo môi trường hướng dẫn robot là môi trường phải có khả năng online

đồng thời phải có tính trực quan để việc hướng dẫn trở nên dễ dàng nhất có thể cho

người dùng.



 Nhận xét

Mặc dù, cả hai giải pháp đều có thể đáp ứng được yêu cầu. Nhóm đã xem xét khả

năng của các công nghệ hiện tại và nhận thấy hiện nay các việc hỗ trợ cho ứng dụng

hoàn toàn trên web còn khá mới mẻ nên còn nhiều hạn chế đồng thời nếu thực hiện

theo giải pháp 1 sẽ mắc phải những vấn đề cố hữu của ứng dụng web, dẫn đến sẽ

không thực hiện được một số tính năng chính của hệ thống. Nhóm đã quyết định sử

dụng giải pháp 2 để xây dựng ứng dụng tạo robot, các phần còn lại của hệ thống vẫn

xây dựng trên nền web.



3.3. Chọn lựa công cụ tương tác web

Trong giai đoạn khảo sát nhóm đã tìm hiểu nhiều cách thức cho phép tương tác và

ghi nhận hành đồng của người dùng lên trang web. Nhóm đã đúc kết được cả hai

hướng tiếp cận vấn đề.

Hướng tiếp cận đầu tiên là sử dụng chính trình duyệt web có sẵn trên máy người

dùng để người dùng thao tác đồng thời ứng dụng sẽ ghi nhận lại các thao này để tạo

robot. Vấn đề gặp phải ở hướng tiếp cận này là gây khó khăn với người sử dụng do

phải tương tác với trình duyệt web đồng thời lại hướng dẫn và quản lý trên ứng

dụng tạo robot. Hơn nữa việc giao tiếp giữa trình duyệt web và ứng dụng rất hạn

chế đồng thời tốn nhiều tài nguyên.

Hướng tiếp cận thứ hai là sử dụng control để có thể tích hợp vào ứng dụng tạo robot

tạo nên một giao diện đồng nhất thân thiện với người dùng đồng thời việc tương tác

giữa ứng dụng và control duyệt web trở nên dễ dàng hơn. Sau thời gian tìm hiểu lợi

điểm và hạn chế của các control dùng để duyệt phép nên nền winform nhóm chọn

được ba control tiêu biểu sau:



38



3.3.1. WebBrowser control (.NET Framework)

.NET Framework hỗ trợ sẵn một control đóng vai trò như một trình duyệt web và

cũng cấp các lớp cho phép tương tác và điều khiển, ghi nhận các hành động của

người dùng. Tuy nhiên các lớp và hàm cung cấp sẵn của .NET Framework rất ít chỉ

vừa đủ đối với người sử dụng bình thường.

3.3.2. AxWebBrowser (ActiveX)

Đây chính cách sử dụng activeX Microsoft WebBrowser Control trong .NET. Việc

sử dụng đến tầng lõi của một web browser này cho phép chúng ta có thể sử dụng

được rất nhiều các tính năng đồng thời quản lý chặt chẽ hơn web browser control

này. Tuy nhiên vì đây là một ActiveX control nên được xây dựng bằng unmanagedcode, do đó việc thao tác với control này khá rườm rà để có thể sử dụng một cách

dễ dàng cần phải xây dựng các wrapper class cho phép dễ dàng sử dụng control này.

Việc bọc lại các tất cả interface và các lớp của ActiveX là một công việc tỉ mẫn và

rất nhiều thời gian do số lượng các interface và lớp của ActiveX control này không

hề ít.

3.3.3. csEXWB (opensource)

Đây có thể được xem là một wrapper đầy đủ nhất của Microsoft WebBrowser

Control. csEXWB cho phép thực hiện việc cấu hình cao cấp và điểu khiển toàn bộ

các tài nguyên của activeX. Hơn nữa từ csEXWB ta có thể dễ dàng thêm và tùy

chỉnh các chức năng cần thiết cho ứng dụng. Việc sử dụng csEXWB sẽ khiến cho

các đoạn mã chương trình ở nên mạch lạc rõ ràng và dễ hiểu vì hoàn toàn sử dụng

managed-code để điều khiển, nhận, xử lý các sự kiện.

Đây cũng chính là control mà nhóm chọn để phát triển hệ thống.



3.4. Các yêu cầu đặt ra cho môi trường tạo hướng dẫn

Liệu csEXWB có đáp ứng được các yêu cầu mà một một trường tạo hướng dẫn cho

robot đặt ra hay không? Đó là vấn đề mà nhóm cần phải giải quyết. Thế nhưng các

yêu cầu mà một môi trường hướng dẫn cần phải có là gì?

39



Thông qua việc tìm hiểu chức năng của các hệ thống phần mềm hàng đầu trên thế

giới về lĩnh vực này, nhóm đã rút ra được một số yêu cầu tối cần thiết – mà một môi

trường tạo hướng dẫn cho Robot phải có - để có thể tạo ra được các robot có khả

năng rút trích thông tin tự động trên Internet như sau:

3.4.1. Yêu cầu hiển thị trực quan cấu trúc trang web



• Vấn đề

Yêu cầu của một môi trường hướng dẫn robot là phải trực quan. Vì vậy, làm thế nào

môi trường phải có khả năng cho người dùng thấy được mã HTML của thành phần

mà mình đã chọn hay nói cách khác phải cho người dùng thấy được mã HTML của

nó trong toàn bộ source HTML của một trang web. Sở dĩ yêu cầu này được đưa ra

là do: khi ta click chọn một thành phần nào đó nhưng bên trong thành phần đó lại là

thành phần mà ta muốn lưu lại để cho robot tương tác trong quá trình thực thi.

(chẳng hạn như một image bên trong một hyperlink và thành phần mà ta muốn

robot tương tác là image chứ không phải hyperlink nhưng khi người dùng click

chọn thì nó chỉ biết đó là một hyperlink chứ không phải là image - do hyperlink là

thành phần cha của image).

• Giải pháp

Đối với toàn thể một trang web khi toàn bộ trang đã được tải về dựa vào interface

IHTMLDOMNode ta sẽ lần lượt duyệt từng node trong trang web và từ đó xây

dựng được một DOM Tree hiển thị cấu trúc của trang web đang hiển thị. Dựa vào

đó ta sẽ biết được cấu trúc tổng thể của một trang web bao gồm toàn bộ element của

trang web, element nào trước element nào, element nào chứa element nào, … Khi

người dùng tác động vào một element của trang web, ta dựa vào interface

IHTMLElement để lần vết xác định tọa độ của element đó trong trang web. Mỗi

IHTMLElement đều có mã HTML cho biết nội dung trong element đó trong mã

HTML của trang.



40



Hinh 3 Hiển thị trực quan cấu trúc trang web

̀



3.4.2. Yêu cầu thay đổi context menu



• Vấn đề

Do nguồn gốc của csEXWB dựa trên activeX Microsoft WebBrowser control nên

context menu mặc định sẽ là context menu của chính trình duyệt Internet Explorer

của máy. Tuy nhiên, do yêu cầu trên mà nảy sinh một yêu cầu khác là cần phải có

một context menu khác bao gồm các công việc khác nhau như click lên một thành

phần nào đó và lưu lại, hay rút trích toàn bộ text bên trong một thành phần nào đó…

mà một môi trường tạo robot cần phải có. Do vậy yêu cầu đặt ra là làm sao thay thế

context menu mặc định có sẵn của csEXWB bằng một context menu mà một môi

trường tạo hướng dẫn cho robot đòi hỏi.



41



• Giải pháp

Để thay đổi context menu đơn giản chỉ là tắt context menu mặc định và cho hiển thị

context menu tự tạo. Để làm điều này trong csEXWB ta chặn và xử lý sự kiện

WBContextMenu.



Hinh 3 Context menu đã được thay đổi

̀



3.4.3. Yêu cầu ghi nhận hành động của người dùng



• Vấn đề

Làm sao trong quá trình hướng dẫn cho robot khi người dùng click lên một thành

phần (element) nào đó trên trang web thì môi trường phải biết được người dùng đã

click lên thành phần nào của trang web. Mục đích của việc này là để có thể phục vụ

cho việc lưu lại các thành phần mà robot cần tương tác trong quá trình thực thi của

mình sau này.



42



• Giải pháp

Yêu cầu này sẽ được giải thích chi tiết ở mục 3.5

3.4.4. Yêu cầu thực hiện lại những thao tác của người dùng



• Vấn đề

Song song với việc ngăn chặn các kết quả khi click chọn một thành phần thì rõ ràng

một môi trường tạo hướng dẫn cho robot phải có thể thực thi được các sự kiện của

một thành phần nào đó của một trang web chẳng hạn như có khả năng kích hoạt sự

kiện click của một thành phần, hay có thể tự động đánh dấu chọn hay bỏ chọn của

một radio button, hay một checkbox trên trang web… Và đây là một yêu cầu khác

mà một môi trường tạo hướng dẫn cho robot cần phải đáp ứng.

• Giải pháp

Yêu cầu này sẽ được giải thích chi tiết ở mục 3.6

3.4.5. Yêu cầu rút trích dữ liệu



• Vấn đề

Robot không những có khả năng thực hiện lại mọi thao tác của người dùng mà phải

có khả năng rút trích dữ liệu từ nội dung của trang web. Đây mới chính là mục tiêu

chính của hệ thống nhằm biến đổi dữ liệu của mọi trang web thành dữ liệu chuẩn

nhằm sử dụng lại và gắn kết với các hệ thống khác

• Giải pháp

Dựa vào các chỉ thị của người dùng cần rút trích dữ liệu nào của đối tượng nào. Hệ

thống sẽ tìm đến đúng HTML Element đó để rút dữ liệu. Dữ liệu cần rút trích có thể

là text, url, HTML source, hay hình ảnh, nhạc, video, … Xem chi tiết ở mục 3.7

3.4.6. Yêu cầu lưu lại các hành động để tạo robot



• Vấn đề

43



Một môi trường tạo hướng dẫn cho robot còn phải có khả năng cho người dùng lưu

lại các hướng dẫn mà mình đã thực hiện để robot có thể thực thi lại.Yêu cầu đặt ra

là ta phải lưu lại script hướng dẫn đó dưới định dạng lưu trữ nào: nhị phân, text, cơ

sở dữ liệu hay XML, ...?

• Giải pháp

Nếu tham khảo các công nghệ hiện tại thì đương nhiên XML sẽ làm một ứng cử

viên sáng giá. Ta có thể dùng Seriallization để dễ dàng nhanh chóng đọc và lưu nội

dung thành XML. Nhưng nếu tùy vào mục đích sử dụng chương trình hệ thống phải

hỗ trợ các kiểu lưu robot khác nhằm tăng tính bảo mật của robot.

Ngoài ra, môi trường còn nhiều yêu cầu khác nữa. Đó chỉ là những yêu cầu tối thiểu

mà một môi trường tạo hướng dẫn và thực thi robot cần phải có để thực thi được

việc rút trich thông tin tự động trên Internet. Và các yêu cầu đó cũng chính là những

vấn đề mà nhóm gặp phải khi xây dựng hệ thống tự đông rút trích và so sánh thông

tin giá cả các sản phẩm điện tử.



3.5. Ghi nhận hành động của người dùng

Ứng dụng phải có khả năng ghi nhận lại các hành động của người dùng để việc tạo

robot trở nên hoàn toàn trong suốt với người dùng. Nghĩa là người dùng tương tác

với ứng dụng như là một trình duyệt web thông thường, ứng dụng sẽ ngầm định lưu

lại mọi hành động của người dùng để tạo robot.

Hướng tiếp cận đầu tiên là theo dõi tất cả sự kiện của tất cả element trong một trang

web. Đây là một cách đơn giản và không bỏ sót các sự kiện nào của trang web.

Nhưng số lượng các element trong một trang web rất lớn và người dùng chỉ thao tác

lên một số ít element do đó việc gắn các hàm theo dõi sự kiện vào tất cả các element

gây mất nhiều thời gian và tốn nhiều tài nguyên. Một hạn chế cực kì nghiêm trọng

của hướng tiếp cận này chính là việc theo dõi các element được tự động thêm vào

khi trang web có sử dụng AJAX. Dẫn đến không thể ghi nhận các hành động khi

người dùng thao tác trên các element mới này.



44



Một cách nhẹ nhàng và nhanh chóng hơn là theo dõi sự kiện chuột và bàn phím của

người dùng để phát sinh các hành động tổng quát của người dùng lên trang web.

Sau đây là các hành động tiêu biểu khi duyệt web:

3.5.1. Click

Đây là thao tác khi người dùng kích chuột vào một đối tượng trên trang web hoặc

hành động bấm Space, Enter khi có một đối tượng đang được kích hoạt.

Để nhận biết hành động này ta xem xét sự kiện kích chuột trái lên đối tượng và sự

kiện bấm phím Enter hay Space khi đối tượng đang được kích hoạt không được

dùng để nhập text.

3.5.2. Chọn giá trị trong combobox

Đây là hành động người dùng thay đổi giá trị trong combobox, cũng chính là thay

đổi giá trị chứa bên trong thẻ đang được kích hoạt.

3.5.3. Gõ văn bản

Đây là hành động người dùng điền giá trị vào một hoặc một