Khóa luận Nghiên cứu và phát triển hệ thống xây dựng và vận hành tự động Webbot thu thập thông tin trên internet để cung ứng các dịch vụ web theo yêu cầu

MỤC LỤC

 

Chương 1 Mở đầu 1

1.1. Giới thiệu Web 2.0 và xu hướng phát triển 1

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

1.3. Mục tiêu của đề tài 2

1.4. Nội dung của luận văn 3

Chương 2 Khảo sát hiện trạng 5

2.1. Khảo sát các công cụ tự động hóa và rút trích thông tin trên web 5

2.1.1. Kapow Mashup Server 5

2.1.2. iMacros 9

2.1.3. Newbie Web Automation 13

2.1.4. Automation Anywhere 15

2.1.5. SWExplorerAutomation (SWEA) 19

2.2. Bảng so sánh chức năng các hệ thống 21

2.3. Kết luận 22

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 23

3.1. Tạo và thực thi robot 23

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

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

3.3.1. WebBrowser control (.NET Framework) 27

3.3.2. AxWebBrowser (ActiveX) 27

3.3.3. csEXWB (opensource) 27

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

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

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

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

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

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

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

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

3.5.1. Click 33

3.5.2. Chọn giá trị trong combobox 33

3.5.3. Gõ văn bản 33

3.5.4. Submit form 33

3.6. Thực hiện lại hành động của người dùng 33

3.6.1. Click 34

3.6.2. Chọn giá trị trong combobox 34

3.6.3. Gõ văn bản 34

3.6.4. Submit form 34

3.7. Rút trích dữ liệu 34

3.7.1. Dữ liệu text 34

3.7.2. Dữ liệu là hình ảnh 35

3.7.3. Dữ liệu là một url 35

3.8. Cách xác định HTML Element trong HTML Document 35

3.8.1. HTML Element thông thường 35

3.8.2. TableRow 36

3.9. Trang web có sử dụng FRAME hoặc IFRAME 36

3.10. Tương tác với các thành phần AJAX 37

3.11. Các hộp thoại Javascript 37

3.12. Session và cookie 38

3.12.1. Vấn đề ghi nhớ đăng nhập 38

3.12.2. Tải các dữ liệu yêu cầu đăng nhập 38

3.13. Cung cấp kết quả cho người dùng 38

Chương 4 Tổng quan toàn bộ hệ thống 40

4.1. Giới thiệu tổng quan 40

4.2. Kiến trúc hệ thống 41

4.2.1. Tầng Data 43

4.2.2. Tầng Business 44

4.2.3. Tầng Data Presentation 44

4.2.4. Tầng Application 45

4.3. Kết luận 45

Chương 5 Phân hệ WebBot Creator 46

5.1. Giới thiệu 46

5.2. Qui trình tạo WebBot 48

5.3. Kiến trúc 49

5.4. Quy trình sử dụng 50

5.5. Kết luận 55

Chương 6 Phân hệ WebBot Online Manager 56

6.1. Giới thiệu 56

6.2. Qui trình upload WebBot 57

6.3. Qui trình gửi kết quả thực thi WebBot 58

6.4. Kiến trúc 60

6.5. Các chức năng trong phân hệ WebBot Online Manager 61

6.5.1. Các chức năng thông dụng 61

6.5.2. Các chức năng của quản trị viên 62

6.5.3. Các chức năng của người dùng thông thường 63

6.6. Kết luận 65

Chương 7 Phân hệ WebBot Watcher 66

7.1. Giới thiệu 66

7.2. Qui trình theo dõi yêu cầu thực thi WebBot 66

7.3. Qui trình thực thi WebBot 67

7.4. Kiến trúc 68

7.5. Các chức năng trong phân hệ WebBot Watcher 69

7.6. Kết luận 70

Chương 8 Phân hệ WebBot Services 71

8.1. Giới thiệu 71

8.1.1. Web service 71

8.1.2. Feed 73

8.1.3. Web clip 74

8.2. Kiến trúc 75

8.3. Kết luận 76

Chương 9 Kết luận 77

9.1. Các kết quả đạt được 77

9.2. Hướng phát triển của đề tài 78

 

 

docx97 trang | Chia sẻ: netpro | Lượt xem: 1884 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu và phát triển hệ thống xây dựng và vận hành tự động Webbot thu thập thông tin trên internet để cung ứng các dịch vụ web theo yêu cầu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
dụng. 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. Ư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 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. 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: 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. 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 unmanaged-code, 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. 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. 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ì? 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: 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. Hình 31 Hiển thị trực quan cấu trúc trang web 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. 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. Hình 32 Context menu đã được thay đổi 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. Giải pháp Yêu cầu này sẽ được giải thích chi tiết ở mục 3.5 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 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 Yêu cầu lưu lại các hành động để tạo robot Vấn đề 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ử. 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. 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: 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. 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ẻ . Ứng dụng sẽ ghi nhận bằng cách theo dõi sự kiện onchange của element đang được kích hoạt. 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 . Ứng dụng sẽ theo dõi và so sánh giá trị ban đầu và giá trị mới do người dùng để biết được có sự thay đổi nội dung do người dùng nhập vào. Submit form Hành động này xảy ra khi người dùng bấm Enter để bắt đầu gửi dữ liệu lên trang web. Ta sẽ xác định form đang chứa element đang được kích hoạt từ đó biết được form nào sẽ được submit khi có hành động này. Thực hiện lại hành động của người dùng Sau khi ghi nhận các hành động của người dùng dĩ nhiên robot phải có khả năng lập lại các hành động đó để sử dụng cho các lần sau. Robot phải thông minh để có khả năng thực hiện tất cả mọi hành động có thể có của người dùng khi đang duyệt web tìm kiếm thông tin. Sau khi thực hiện bất cứ hành động nào nếu có sự chuyển trang ứng dụng cần phải đợi cho trình duyệt web đổi sang trang mới để có thể thực hiện hành động tiếp theo. Dưới đây là cách để thực hiện lại các hành động của người dùng, phần định nghĩa các hành động có thể xem tại mục 3.5. Click Thực hiện lại hành động Click lại dễ hơn rất nhiều so với việc ghi nhận hành động. Ta chỉ cần gọi hàm click() trong interface IHTMLElement của đối tượng mà ta cần click. Chọn giá trị trong combobox Ứng với hành động này ta thay đổi biến value trong interface IHTMLSelectElement thành giá trị mong muốn. Ngoài ra cũng cần phải kích hoạt sự kiện onchange của để trang web nhận biết và gọi các hàm Javascript tương ứng. Gõ văn bản Mỗi element đều có biến value của IHTMLElement, ta chỉ cần cập nhật lại biến này. Submit form Submit form bằng cách gọi hàm submit() của interface IHTMLFormElement. Rút trích dữ liệu Dữ liệu text Dữ liệu text bao gồm phần text của một hay nhiều element, hoặc phần mã HTML của một hay nhiều element. Để rút trích dữ liệu đầu tiên cần xác định được element cần rút trích dữ liệu sau đó thông qua các hàm innerText(), innerHTML(), outterText(), outterHTML() của IHTMLElement. Dữ liệu là hình ảnh Hình ảnh trên trang web tồn tại ở hai dạng, hình ảnh của thẻ hoặc là hình nền của một HTML element. Ta sẽ xác định url của ảnh và lấy nội dung của ảnh, đây cũng là cách lấy dữ liệu của một url ở mục sau. Dữ liệu là một url Để lấy dữ liệu trên một url ta có hai cách sau: Sử dụng chính csEXWB để tải nội dung của url. Cách này có ưu điểm là lấy được những dữ liệu yêu cầu cookie và session. Cách thứ hai là chuyển url sang một trình hỗ trợ download khác. Cách này sẽ quản lý và tăng tốc độ các file tải về. Nhưng lại mắc yếu điểm là không thể tải được dữ liệu yêu cầu cookie và session. Cách xác định HTML Element trong HTML Document HTML Element thông thường Để thao tác hoặc rút trích dữ liệu trên một trang web ta cần phải xác định đúng vị trí của element đó trong trang web. Ta có những các xác định element như sau: Xác định thông qua ID Trong một document nếu một element có ID thì ID đó là duy nhất do đó ta có thể dựa vào ID này để để xác định element đó. Xác định thông qua name Đối với chuẩn HTML cũ một element cũng có thể có trường name, nhưng không chắc rằng name này là duy nhất. Để xác định element thông qua trường name này ta cần phải thêm một tham số là index của element có cùng name trong document. Xác định thông qua một HTML element khác đã được xác định Nếu element không có trường ID lẫn trường name ? Ta phải xác định element dựa vào element cha của nó. Từ element cần xác định ta tuần tự lần lên element cha của nó cho đến khi element cha đó đã được xác định. Như vậy để xác định element này ta dựa vào element đã được xác định và đường đi từ element cha đến element cần xác định. TableRow Dữ liệu kiểu bảng là dữ liệu thường thấy trong việc thể hiện nội dung của một trang web (chứng khoán, …). Do đó để thuận tiện cho việc truy xuất nội dung của từng ô của Table ta định nghĩa các cách xác định một dòng của table như sau: Xác định thông qua chỉ số dòng Đây là cách thông thường nhất để xác định một dòng trong một bảng. Xác định thông qua giá trị của một cột xác định Trong trường hợp bảng có một cột để dùng để xác định chỉ mục cho từng dòng của bảng. Ví dụ : trong bảng giao dịch chứng khoán cột đầu tiên ghi mã cổ phiếu, ta dựa vào cột này để xác định các trường khác bao gồm giá tham chiếu, giá trần, giá sàn, … Trang web có sử dụng FRAME hoặc IFRAME Ở mục trên ta đã biết cách xác định một HTML Element trong một HTML Document. Một trang web có thể bao gồm nhiều FRAME hoặc IFRAME do đó để xác định HTML Element này trên trang web ta cần phải xác định được element này thuộc vào document nào. Vì thế ta cần phải ghi nhận thêm cấu trúc của document trong trang web và xác định document chứa element. Tương tác với các thành phần AJAX Vấn đề Các thành phần AJAX là các thành phần được hiển thị sau khi trang đã hiển thị hoàn tất. Ngoài vấn đề ghi nhận hành động của người dùng trên các thành phần AJAX ở mục 3.5, thì vấn đề thực hiện lại của người dùng cũng gặp phải khó khăn. Đó chính là phải biết được chính xác khi nào những element đó đã được thêm vào trang web. Thêm nữa việc rút trích dữ liệu AJAX cũng gặp khó khăn để nhận biết đâu là dữ liệu thực sự người dùng muốn lấy. Giải pháp Để xác định khi nào element được thêm vào trang web khi nội dung trang web đã tải hoàn tất ta phải liên tục kiểm tra sự tồn tại của element trên trang web và chỉ tương tác khi element đó được tải hoàn tất. Để xác định dự liệu bên trong element có phải là dữ liệu người dùng cần không ta dựa vào việc so sánh dữ liệu lấy được với mẫu dữ liệu người dùng muốn nhận. Các hộp thoại Javascript Vấn đề Vấn đề gặp phải khi trang web có hiển thị các hộp thoại thông báo hoặc xác nhận sẽ làm ngưng việc truy xuất trang web bên dưới. Một điều khá quan trọng nữa là khó có thể xác định người dùng đã chọn nút nào trong hộp thoại vì hộp thoại này nằm bên ngoài trang web. Giải pháp Cách đơn giản để giải quyết vấn đề này là ngăn chặn việc xuất hiện mọi hộp thoại Javascript bằng cách xử lý sự kiện WBDocHostShowUIShowMessage của csEXWB. Một cách tiếp cận khác là dùng CBT Hook để xác định và lặp lại hành động của người dùng lên các hộp thoại này. Session và cookie Vấn đề ghi nhớ đăng nhập Vấn đề Ta có một robot tự động gửi tin nhắn miễn phí thông qua trang web của Mobifone, robot này đầu tiên phải đăng nhập bằng số điện thoại của mình rồi bắt đầu gửi tin nhắn. Nhưng nếu ta thực hiện lại robot này lần nữa sẽ không còn ô để đăng nhập vì ở lần trước đã đăng nhập rồi, ta chỉ có thể đăng xuất mới có thể đăng nhập lại à Robot không hoạt động được. Giải pháp Để giải quyết vấn đề này ta có các cách giải quyết như sau: Trong quá trình tạo robot người dùng phải bấm vào nút đăng xuất khi kết thúc tạo robot. Xóa cookie trong mỗi lần robot hoạt động. Kiểm tra nếu tồn tại nút đăng xuất robot sẽ tự động bấm đăng xuất trước khi thực hiện tác vụ. Tải các dữ liệu yêu cầu đăng nhập Vấn đề này đã được đề cập ở mục 3.7.3. Cung cấp kết quả cho người dùng Vấn đề Người dùng ở đây có thể là một người sử dụng bình thường hoặc là một hệ thống khác. Đối với người sử dụng web thông thường kết quả trả về phải là định dạng có thể đọc hoặc xem ngay trên trình duyệt của họ. Nhưng đối với các hệ thống khác kết quả trả về phải được chuyển thông qua các dạng web service hoặc các giao thức truyền thông qua mạng khác. Thời gian xử lý và cung cấp kết quả theo yêu cầu của người dùng cũng là một vấn đề khá quan trọng. Giải pháp Tùy theo mục đích sử dụng hệ thống có thể trả về các định dạng khác nhau thông qua các dịch vụ khác nhau dựa vào mục đích của người dùng là chọn lọc thông tin thích hợp hoặc để tương tác với các hệ thống khác. Đối với người sử dụng web, hệ thống có các kiểu trả về theo dạng feed cho phép người dùng đọc nhanh các đầu đề cùng các mô tả ngắn về các chủ đề đó (đây là dạng thường gặp khi hệ thống lấy nội dung ở trang tin trên các trang báo hoặc các trang thông tin, tin tức). Đối với các hệ thống khác, hệ thống có thể cung cấp kết quả thông qua các dịch vụ web. Hệ thống hỗ trợ cả hai chuẩn SOAP web service và REST web service. Nhằm tăng tốc độ xử lý và gửi kết quả, hệ thống sẽ có cơ sở dữ liệu riêng nhằm lưu lại các kết quả thông dụng và trả kết quả nhanh chóng cho những yêu cầu sau. Tổng quan toàn bộ hệ thống ? Chương 4 sẽ giới thiệu tính năng của toàn bộ hệ thống đồng thời mô tả kiến trúc của toàn hệ thống. Ứng với mỗi phân hệ chính sẽ có những mô tả tổng quát. Giới thiệu tổng quan Hệ thống WebBot được xây dựng trên nhiều phân hệ riêng lẻ cho phép việc thay đổi và nâng cấp một cách nhanh chóng và tiện lợi nhất. Hệ thống không những có những tính năng của các hệ thống tự động hóa rút trích thông tin hàng đầu mà còn rất dễ sử dụng. Hệ thống có thể cung cấp và đáp ứng dễ dàng nhanh chóng những nhu cầu cơ bản của người sử dụng sử dụng bình thường đến những nhu cầu nâng cao cung cấp cho các hệ thống lưu trữ và xử lý thông tin khác. Sau đây là những tính năng chính của hệ thống WebBot: Giao diện trực quan sinh động dễ sử dụng Hỗ trợ tạo lập và lưu trữ các tập tin XML hướng dẫn hành động và rút trích dữ liệu Cho phép xử lý cách hành động theo các câu lệnh điều kiện, các câu lệnh lặp Hỗ trợ việc rút trích nhiều loại dữ liệu bao gồm văn bản, HTML, hình ảnh, tập tin nhị phân, … Có khả năng hoạt động tốt trên cả những trang web sử dụng frame, iframe và công nghệ AJAX Định dạnh dữ liệu xuất theo dạng cây thuận tiện cho việc gom nhóm dữ liệu, rút trích dữ liệu theo dạng bảng Có thể kết xuất dữ liệu xuống tập tin văn bản hoặc Excel Hỗ trợ trang web cho phép đăng kí và tải lên các WebBot giúp thuận tiện sử dụng hoặc chia sẻ Có thể thông qua trang web để dùng thử và xem trước kết quả cùng định dạng trả về Các định dạng hỗ trợ gồm SOAP web service, REST web service, RSS feed, ATOM feed, … Sử dụng cơ sở dữ liệu lưu trữ để ghi nhận, quản lý và tăng tốc độ thực thi và gửi kết quả đến người sử dụng Kiến trúc hệ thống Toàn bộ hệ thống WebBot bao gồm 4 thành phần chính: Thành phần Mô tả WebBot Creator Đây là thành phần cho phép tạo lập các tập tin hướng dẫn cho WebBot biết nơi cần lấy thông tin và thiết lập cấu trúc kết quả do WebBot tự động lấy về WebBot Online Manager Thành phần này cho phép upload và quản lý các WebBot tạo được ở WebBotCreator. Đồng thời cho người dùng biết địa chỉ và cách sử dụng các dịch vụ do hệ thống cung cấp. Thông qua WebBot Online Manager, người dùng có thể xem trước kết quả khi WebBot thực hiện WebBot Services Đây là thành phần chứa các dịch vụ của hệ thống bao gồm các nhóm dịch vụ sau: Liên lạc giữa các thành phần của hệ thống (gửi yêu cầu thực thi WebBot, ghi kết quả vào cơ sở dữ liệu, …) Chuyển dữ liệu do WebBot lấy về thành các dạng chuẩn tùy theo các loại dịch vụ mà hệ thống cung cấp để cung cấp cho người sử dụng hoặc các hệ thống khác WebBot Watcher Thành phần theo dõi và thực thi các yêu cầu rút trích dữ liệu được gửi đến hệ thống Bảng 41 Các thành phần chính của hệ thống WebBot Hình 41 Mô hình kiến trúc hệ thống Các thành phần của hệ thống được xây dựng trên nền tảng của nhiều công nghệ khác nhau nhằm sử dụng ưu điểm của công nghệ đó và tăng tính tiện lợi cho người sử dụng. Toàn bộ hệ thống có thể được phân thành bốn tầng bao gồm Data, Business, Data Pre

Các file đính kèm theo tài liệu này:

  • docxBao cao khoa luan - Huy Khanh.docx