Khóa luận Xây dựng hệ thống so sánh thông tin giá cả trực tuyến

Từ những năm cuối thể kỉ 20, nền kinh tế thế giới đã có nhiều bước tiến lớn. Nó kéo theo nhu cầu mua sắm của con người cũng tăng lên đáng kể. Các hình thức tổ chức kinh doanh như siêu thị, cửa hàng, đại lý, ngày càng đại chúng, ngày càng phong phú về chất lượng sản phẩm, đa dạng về hình thức phục vụ. Nhu cầu của con người ngày càng tăng nhưng quỹ thời gian của mỗi người dành cho mua sắm ngày càng eo hẹp. Vấn đề đặt ra là người tiêu dùng muốn tìm thấy sản phẩm có chất lượng với giá cả phải chăng trong khi không tốn nhiều công sức, thời giờ đến thăm từng cửa hàng lục tìm từng sản phẩm. Đứng dưới góc độ người tiêu dùng thì như vậy, còn dưới góc độ của người kinh doanh thì đương nhiên họ muốn quảng bá sản phẩm tới càng nhiều người càng tốt, làm sao để có thật nhiều khách và bán được thật nhiều hàng. Cả người tiêu dùng và người kinh doanh đều muốn hướng tới một hình thức kinh doanh nào đó thỏa mãn cả đôi bên. Trong thời đại bùng nổ của công nghệ thông tin, hình thức mua bán trực tuyến đã ra đời, mau chóng tìm được chỗ đứng và không ngừng phát triển. Với hình thức mua bán mới này, người tiêu dùng không cần phải đi đâu xa, chỉ cần ngồi một chỗ truy cập đến các Website bán hàng để mua sắm theo nhu cầu. Hầu hết các Website mua bán trực tuyến hiện nay đều cung cấp chức năng tìm kiếm, giúp tiết kiệm rất nhiều thời gian cho người dùng. Tuy nhiên, với sự gia tăng chóng mặt của các Website bán hàng hay quảng cáo sản phẩm, người tiêu dùng không biết nên bắt đầu từ đâu. Cùng một sản phẩm có khi có đến hàng trăm Website bày bán với giá cả chênh lệch nhau. Tâm lý chung của người tiêu dùng là muốn mua được sản phẩm có chất lượng với giá cả thấp nhất, nhưng nếu đi đến từng Website để so sánh thì sẽ mất rất nhiều thời gian.

doc61 trang | Chia sẻ: tuandn | Lượt xem: 2094 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Khóa luận Xây dựng hệ thống so sánh thông tin giá cả trực tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI CẢM ƠN ˜²™ Em xin gửi lời cảm ơn chân thành tới các thầy cô trong khoa Công Nghệ Thông Tin, gia đình và bạn bè, đã giúp đỡ em trong suốt quá trình học tập cũng như thực hiện khóa luận. Đặc biệt em xin trân trọng cảm ơn thầy giáo, Tiến sĩ Nguyễn Đại Thọ đã trực tiếp hướng dẫn em hoàn thành khóa luận này. Hà nội, ngày 25 tháng 05 năm 2006 Nguyễn Huy Sơn. TÓM TẮT NỘI DUNG ˜²™ Trên thế giới đã có nhiều Website tập hợp thông tin giá cả của nhiều chủng loại mặt hàng khác nhau chào bán trên mạng bởi nhiều công ty kinh doanh khác nhau. Ở Việt Nam khoảng một năm trở lại đây cũng đã bắt đầu xuất hiện một số Website như vậy. Tuy nhiên hầu hết các Website đó cả ở Việt Nam lẫn trên thế giới đều sử dụng những tác tử khảo duyệt và trích rút thông tin có mức độ tự động và tính thông minh không cao. Cụ thể, đối với mỗi Website bán hàng, người phát triển phải xây dựng một bộ luật trích rút riêng cho chương trình tác tử. Trong nghiên cứu, người ta đã đề xuất một số kỹ thuật học máy sử dụng chỉ một tác tử nhưng có thể trích rút thông tin từ nhiều Website có cách thức tổ chức khác nhau. Báo cáo này nghiên cứu ứng dụng các kỹ thuật trích rút theo phương pháp học máy để xây dựng một hệ thống so sánh thông tin giá cả trực tuyến có tính khả biến cao. Tính khả biến cao mà ứng dụng hướng tới là khả năng quy tụ thông tin từ một số nguồn không hạn chế các Website sản phẩm với cùng một chương trình tác tử. Hệ thống của chúng tôi đã cho những kết quả ban đầu rất đáng khích lệ khi thử nghiệm trên một số Website tiêu biểu ở Việt Nam. MỤC LỤC TÓM TẮT NỘI DUNG 1 LỜI NÓI ĐẦU 5 Bối cảnh chung 5 So sánh giá cả 5 Mục đích đề tài 6 Bố cục khóa luận 6 KẾT LUẬN 58 DANH MỤC TÀI LIỆU THAM KHẢO 60 Một số thuật ngữ và chữ viết tắt được sử dụng trong đề tài Tên thuật ngữ Ý nghĩa CSDL Cơ sở dữ liệu Database Cơ sở dữ liệu Link Liên kết PDU Product Description Unit- Đơn vị miêu tả sản phẩm URL Uniform Resource Locator URI Uniform Resource Identifier LỜI NÓI ĐẦU Bối cảnh chung Từ những năm cuối thể kỉ 20, nền kinh tế thế giới đã có nhiều bước tiến lớn. Nó kéo theo nhu cầu mua sắm của con người cũng tăng lên đáng kể. Các hình thức tổ chức kinh doanh như siêu thị, cửa hàng, đại lý,… ngày càng đại chúng, ngày càng phong phú về chất lượng sản phẩm, đa dạng về hình thức phục vụ. Nhu cầu của con người ngày càng tăng nhưng quỹ thời gian của mỗi người dành cho mua sắm ngày càng eo hẹp. Vấn đề đặt ra là người tiêu dùng muốn tìm thấy sản phẩm có chất lượng với giá cả phải chăng trong khi không tốn nhiều công sức, thời giờ đến thăm từng cửa hàng lục tìm từng sản phẩm. Đứng dưới góc độ người tiêu dùng thì như vậy, còn dưới góc độ của người kinh doanh thì đương nhiên họ muốn quảng bá sản phẩm tới càng nhiều người càng tốt, làm sao để có thật nhiều khách và bán được thật nhiều hàng. Cả người tiêu dùng và người kinh doanh đều muốn hướng tới một hình thức kinh doanh nào đó thỏa mãn cả đôi bên. Trong thời đại bùng nổ của công nghệ thông tin, hình thức mua bán trực tuyến đã ra đời, mau chóng tìm được chỗ đứng và không ngừng phát triển. Với hình thức mua bán mới này, người tiêu dùng không cần phải đi đâu xa, chỉ cần ngồi một chỗ truy cập đến các Website bán hàng để mua sắm theo nhu cầu. Hầu hết các Website mua bán trực tuyến hiện nay đều cung cấp chức năng tìm kiếm, giúp tiết kiệm rất nhiều thời gian cho người dùng. Tuy nhiên, với sự gia tăng chóng mặt của các Website bán hàng hay quảng cáo sản phẩm, người tiêu dùng không biết nên bắt đầu từ đâu. Cùng một sản phẩm có khi có đến hàng trăm Website bày bán với giá cả chênh lệch nhau. Tâm lý chung của người tiêu dùng là muốn mua được sản phẩm có chất lượng với giá cả thấp nhất, nhưng nếu đi đến từng Website để so sánh thì sẽ mất rất nhiều thời gian. So sánh giá cả trực tuyến Nắm bắt nhu cầu của người tiêu dùng, trên thế giới đã có khá nhiều Website so sánh thông tin giá cả được xây dựng [12]. Riêng ở Việt Nam, theo khảo sát của chúng tôi nếu như cách đây một năm còn chưa có Website nào như vậy thì cho đến nay đã có một xuất hiện ở địa chỉ [13]. Các Website so sánh giá cả là nơi tập hợp thông tin về nhiều chủng loại mặt hàng khác nhau thu thập được từ nhiều nguồn trực tuyến khác nhau. Chúng cho phép người dùng chọn lựa xem mua tại nơi nào là tốt nhất. Hầu hết các Website so sánh giá cả đều có chức năng tìm kiếm theo tên và thông tin sản phẩm. Quá trình thu thập thông tin giá cả được tự động hóa ở những mức độ khác nhau. Mức độ thấp nhất là dữ liệu được nhập hoàn toàn bằng tay thông qua quan sát bằng mắt trên một số Website bán hàng nhất định. Cao hơn một mức, người ta sử dụng những tác tử khảo duyệt và trích rút thông tin, nhưng vì các Website khác nhau có cách thức tổ chức khác nhau nên đối với mỗi Website phải xây dựng một bộ luật trích rút riêng cho chương trình tác tử thông qua khảo sát trước bằng mắt. Những tác tử này được gọi chung là tác tử so sánh giá cả (comparison shopping agent). Công việc trích rút thông tin đạt được mức độ tự động cao nhất khi tác tử so sánh giá cả có thể tự động xây dựng các bộ luật trích rút phù hợp với mỗi Website không cần tới sự can thiệp của người lập trình. Những nghiên cứu theo hướng này bao gồm các công trình [1, 2, 4, 5, 6, 7, 8], trong đó hiệu quả nhất hiện nay là loại tác tử có khả năng học máy do nhóm tác giả Hàn Quốc Yang et al. đề xuất trong các tài liệu [4, 5 6]. Tác tử trích rút thông tin theo phương pháp học máy hoạt động độc lập với thể loại sản phẩm và hoàn toàn tự động. Chỉ cần biết địa chỉ trang chủ một cửa hàng trực tuyến, nó sẽ tự động học cách trích rút thông tin sản phẩm từ Website đó, trong đó có thông tin quan trọng nhất là giá cả sản phẩm. Loại tác tử này có một số chức năng nổi trội như sau: - Tự động học - Không đòi hỏi phải hiểu ngôn ngữ tự nhiên - Dựa trên cơ sở của ngôn ngữ HTML Quá trình tự động học của tác tử giúp cho nó có khả năng phân tích các mô tả sản phẩm và nhận biết được các thuộc tính sản phẩm như giá cả hay chủng loại của sản phẩm. Nó thực hiện điều này mà không cần phải qua những khâu xử lý ngôn ngữ tự nhiên rất phức tạp, và chỉ yêu cầu một ít kiến thức về các thể loại sản phẩm khác nhau mà thôi. Nó trích rút thông tin từ các cửa hàng trực tuyến thông qua sự kết hợp của các kỹ thuật tìm kiếm theo kinh nghiệm, tương hợp mẫu và học suy diễn. Mục đích của khóa luận Khóa luận hướng tới các mục tiêu như sau: Nghiên cứu thuật toán trích rút thông tin theo phương pháp học máy. Phát triển bằng ngôn ngữ lập trình Java tác tử so sánh giá cả có khả năng trích rút thông tin thông minh theo cơ chế học máy đã nghiên cứu. Xây dựng một hệ thống có khả năng giúp người tiêu dùng trong việc khảo sát và chọn sản phẩm một cách tập trung với chức năng quy tụ thông tin từ vô số nguồn khác nhau. Thử nghiệm tác tử với những Website tiêu biểu ở Việt Nam, qua đó đánh giá hiệu quả của chương trình trích rút thông tin và từ đó thực hiện những cải tiến cần thiết về mặt giải thuật và cài đặt. Kết quả Thiết kế được hệ thống hệ thống tương đối hoàn chỉnh các chức năng bao gồm các công việc: Thiết kế tác tử, Website và cơ sở dữ liệu. Tập trung cài đặt và thử nghiệm thành công thành phần chính là tác tử trích rút thông tin sản phẩm, áp dụng cho những Website bán hàng tại Việt Nam. Xây dựng được một hệ thống thử nghiệm đơn giản so sánh giá cả từ một số Website bán hàng khác nhau. Kết quả đạt được tuy còn ở mức hạn chế nhưng về cơ bản đã thực hiện được mục đích đặt ra của khóa luận. Bố cục khóa luận Chương 1 trình bày các kiến thức cơ sở về Java để thực hiện đề tài. Nhìn chung, đề tài này thực hiện với hai nội dung chính. Nội dung thứ nhất là xây dựng được một Website thể hiện được so sánh về giá cả của sản phẩm từ nhiều Website khác nhau. Nội dung thứ hai là thực hiện trích rút thông tin sản phẩm từ các Website bằng tác tử thu thập thông tin giá cả. Cơ chế của tác tử thu thập thông tin giá cả sẽ được đề cập đến ở Chương 3. Hai nội dung này nối kết với nhau bằng một CSDL. Chức năng của CSDL là lưu trữ thông tin sản phẩm về tên chủng loại ,giá bán và các thông tin khác. Website xây dựng được có phần tìm kiếm để người dùng nhập vào từ khóa tìm kiếm. Với từ khóa này, hệ thống sẽ tự tìm trong CSDL xem có sản phẩm nào là phù hợp với từ khóa mà người dùng nhập vào hay không. Nếu có thì sẽ có một trang kết quả trả về trong đó nêu lên các đặc tính của sản phẩm, nơi bán và đặc biệt là nêu bật được giá cả bán ở từng nơi. Để sự tìm kiếm của người dùng có kết quả như mong đợi thì cần phải có sự thể hiện từ hai phía. Phía khách hàng phải có cách nhập từ khóa hợp lý. Phía hệ thống cần phải thường xuyên cập nhật thông tin, thêm sản phẩm mới. Để xây dựng được hệ thống phải khảo sát các Website bán hàng. Nó vừa là sự kiểm chứng cho lý thuyết được đặt ra có phù hợp với thực tiễn hay không vừa là để phục vụ cho việc cập nhật các Webiste sau này. Với mong muốn trước tiên là ứng dụng đề tài này cho các Webiste ở Việt Nam nên chương 2 của báo cáo này sẽ trình bày phần khảo sát về các Website kinh doanh ở Việt Nam. Chương 3 trình bày việc thiết kế tác tử trích rút thông tin. Chương 4 của báo cáo này sẽ trình bày chi tiết cách triển khai trên thực tế. Phần thứ nhất là tìm hiểu và làm rõ từ các vấn đề kỹ thuật cơ sở (như sử dụng ngôn ngữ Java, sử dụng các lớp Java xây dựng sẵn) để thiết kế tác tử so sánh giá cả (Tự động tìm form tìm kiếm, trích rút thông tin sản phẩm). Phần thứ hai sẽ trình bày ý tưởng xây dựng một Website so sánh giả cả và cơ sở dữ liệu để hoàn thành lên một ứng dụng hoành chỉnh Sau cùng là tích hợp các kỹ thuật để cài đặt và triển khai một hế thống so sánh giá cả đơn giản. Vì đây là một lĩnh vực còn khá mới mẻ ở Việt Nam và cũng là một bài toán khó đòi hỏi sự nghiên cứu kỹ càng, sự thực nghiệm và học hỏi nghiêm túc. Trước mắt, chương trình mới chỉ giới hạn tìm kiếm trên các Webiste ở Việt Nam. Thông tin về sản phẩm tìm kiếm cũng có sự hạn chế đến mức cơ bản. Nhưng chắc chắn đề tài sẽ không dừng lại ở đó mà còn tiếp tục hoàn thiện hơn, nhiều tính năng hơn. Phần kết luận sẽ đề ra phương hương phát triển của đề tài này. Tóm lại, qua 5 chương: Chương 1: Khảo duyệt Web với Java Chương 2: Khảo sát các Website bán hàng ở Việt Nam Chương 3: Thiết kế tác tử trích rút thông tin Chương 4: Phát triển hệ thống so sánh thông tin giá cả trực tuyến KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN Người đọc sẽ có một cách tiếp cận từ tổng thể đến cụ thể về một công nghệ mới: Xây dựng tác tử so sánh giá cả và ứng dụng vào Website phục vụ tìm kiếm KHẢO DUYỆT WEB VỚI JAVA Đề tài sử dụng ngôn ngữ lập trình Java vì Java hỗ trợ rất mạnh về lập trình ứng dụng mạng với các lớp thư viện socket giúp đơn giản hóa quá trình kết nối và chuyển dữ liệu trên mạng. Với Java ta có thể lập trình trên rất nhiều giao thức TCP/IP, UDP, FTP, Telnet và HTTP. Tìm hiểu về HTTP Request Một thông điệp do phía Client gửi tới Server được gọi là HTTP Request. Dòng đầu tiên của HTTP Request gồm có 3 phần: Tên phương thức yêu cầu (GET, HEAD, POST,...) Đường dẫn cục bộ của tài nguyên (URI) Phiên bản giao thức đang sử dụng (HTTP/1.0, HTTP/1.1) Ví dụ: GET /reports/sales/index.html HTTP/1.1 GET là tên của phương thức sử dụng để yêu cầu tài nguyên, /reports/sales/index.html là tài nguyên URI và HTTP/1.1 là phiên bản giao thức HTTP đang sử dụng. Hai phương thức phổ biến của HTTP Request là: HTTP GET : yêu cầu một tài nguyên và chỉ gửi được một số lượng dữ liệu giới hạn tới web server. Những dữ liệu phức tạp sẽ được chuyển tiếp. Thông thường phương thức này được sử dụng cho dữ liệu là trang HTML. Một yêu cầu GET sử dụng cho một tài nguyên có thực nếu có một vài hay không tham số nào được truyền. Nếu có tham số đòi hỏi, một chuỗi truy vấn được gắn thêm vào địa chỉ URI. Ví dụ : GET /servlet/helloWorld?name=john&age=22 HTTP/1.1 Trong đó, name=john&age=22 là một truy vấn. Nó bao gồm tên và giá trị tương ứng được phân cách bằng kí tự: & HTTP POST: gửi dữ liệu tới web server và cho phép web server gửi dữ liệu trở lại. Phương thức này chuyển dữ liệu tới tài nguyên thực được định danh bởi URI. Khối dữ liệu được gửi trong phần thân của thông điệp. Các trang HTML sử dụng POST để Submit các form dữ liệu. Khác với GET, các tham số được đặt trong phần thân của thông điệp, nó không được hiển thị như là một phần của yêu cầu URI. Tìm hiểu về gói Bot-Package Gói thư viện Bot là tập hợp các lớp Java được xây dựng nhằm hỗ trợ phát triển Spider, Bot... Ta sẽ sử dụng gói thư viện này để xây dựng một lớp cho phép xác định một form tìm kiếm trên 1 trang HTML và truyền từ khóa qua form đó để lấy về một URL. Sau đây là một số phương thức của các lớp mà ta sẽ sử dụng trong đề tài: Lớp HTTP Cung cấp các công cụ điều khiển: Cookies The referrer tag HTTP User Authentication Automatic Redirection Parsing headers public String getBody() Phương thức này trả về một nguyên bản trả từ một HTTP Request. Nếu kết quả trả về dưới dạng nhị phân thì nó sẽ được chuyển sang dạng chuỗi (String) public CookieParse getCookie(String name) Phương thức trả về những cookie độc lập với tên, kiểu trả về là CookieParse public AttributeList getCookies() Phương thức này trả về danh sách các thuộc tính là nội dung của các cookie hiện tại được lưu giữ bởi HTTP session. public int getTimeout() Phương thức này lấy về thời gian timeout được định nghĩa cho đối tượng HTTP, thời gian được tính theo dạng milliseconds. public String getURL() Phương thúc này trả về URL được yêu cầu bởi phương thức send() lần cuối cùng public void send(String url,String post) throws java.net.UnknownHostException,java.io.IOException Phương thức này được sử dụng để gửi một HTTP Request và nhận lại kết quả trả về từ phía server. Nó có thể được gọi lại nhiều lần trên cùng đối tượng HTTP để chuyển qua những trang kế tiếp nhau. public void setTimeout(int i) Phương thức này sẽ thiết lập thời gian timeout cho một HTTP Request. Thời gian timeout được tính theo milliseconds. public void setURL(String u) Phương thức này thiết lập thuộc tính URL, để chuyển tới URL rõ ràng có thể gọi phương thức với tham số là URL Lớp HTTPSocket Lớp HTTP cung cấp các thuộc tính và phương thức thuận lợi cho việc tạo một kết nối HTTP. Lớp HTTP là một lớp trừu tượng . Lớp HTTPSocket là thể hiện của lớp HTTP. Lớp này giao tiếp với web server sử dụng sockets. Thể hiện của đối tượng HTTP sử dụng lớp HTTPSocket được khai báo: HTTP http = new HTTPSocket(); Lớp Attribute Lớp Bot cung cấp một số lớp sử dụng để miêu tả HTTP header và cookies bao gồm lớp Attribute. Lớp này lưu giữ một danh sách thuộc tính theo từng cặp tên- giá trị và chỉ một giá trị ứng với một tên là được cho phép. Khi ta yêu cầu một danh sách từ các header hay cookies ta sẽ lấy về được một danh sách các thuộc tính. Một số phương thức trong lớp Attribute: public Attribute() Phương thức này khởi tạo một đối tượng Attribute với chuỗi tên và giá trị là rỗng. public Attribute(String name,String value) Phương thức này khởi tạo đối tượng Attribute với tên và giá trị đuợc truyền vào. public Object clone() Phương thức này tạo một bản sao đối tượng Object public String getName() Phương thức lấy tên của đối tượng Attribute public String getValue() Phương thức lấy giá trị của đối tượng Attribute public void setName(String name) Phương thiết lập tên cho đối tượng Attribute public void setValue(String value) Phương thiết lập giá trị cho đối tượng Attribute Lớp HTMLPage Lớp HTMLPage được sử dụng để đọc một trang HTML theo một địa chỉ URL được chỉ ra và hỗ trợ việc trích rút các thông tin hữu ích. Lớp HTMLPage sử dụng phương thức constructor để xây dựng và định nghĩa đối tượng HTML object - đối tượng này được sử dụng trong tất cả các giao tiếp. public HTMLPage(HTTP http) Để mở một kết nối và nhận một trang HTML, luôn bắt đầu với mã: HTTPSocket http = new HTTPSocket(); HTMLPage = new HTMLPage(http); page.open(_url,null); public void open(String url,HTMLEditorKit.ParserCallback callback) throws IOException,BadLocationException Trong đó _url là địa chỉ của Website được chỉ ra. Sau khi thực hiện phương thức open() của đối tượng page, ta có thể xác định các thành phần trong trang HTML : forms, links. Lớp HTTPPage cung cấp một số phương thức lấy về danh sách các ảnh, các link hay các form được tìm thấy khi đọc một trang HTML: public Vector getImages() public Vector getForms() public Vector getLinks() Lớp HTMLForm Lớp này dùng để xác định form và các thuộc tính - được xây dựng nhằm nắm giữ nội dung và điền các giá trị cho form. Với một Website đã được download và được phân tích, phải gắn một đối tượng HTMLForm tương ứng để tìm thấy một form trong trang. Điều này thực hiện nhờ việc sử dụng phương thức getForms() của đối tượng HTMLPage - phương thức trả về một đối tượng Vector chứa danh sách các form tìm thấy trên Website: HTMLForm form = (HTMLForm) page.getForms().elementAt(0); Đối tượng HTMLForm nắm giữ các phương thức và các cấu trúc giúp chỉ ra các thuộc tính của Form action, method, các thuộc tính textbox, radio,… public String getAction() Phương thức này trả về action - địa chỉ url mà dữ liệu của form được POST hoặc GET lên. public String getMethod() Phương thức này trả về phương thức của form thực hiện Xác định Link và các thuộc tính Sử dụng phương thức getLinks() của đối tượng HTMLPage - trả về một đối tượng Vector chứa danh sách các Links trên trang HTML. Link link = (Link) page.getLinks().elementAt(k); Các phương thức của đối tượng Link: link.getPromt(): trả về nội dung nằm giữa 2 cặp thẻ và link.getHREF(): trả về địa chỉ URL mà link trỏ tới. link.getALT(): trả về thuộc tính alt. Kĩ thuật Posting Form Request HTTP Post là một cách thức phổ biến để chuyển thông tin lên Internet. Khi sử dụng POST, có thể gửi một lượng dữ liệu lớn từ trình duyệt lên Server. Thông thường thì dữ liệu trên form là do người dùng điền vào và sau đó nhấn Submit để đẩy dữ liệu đi. Kĩ thuật Posting Form ra đời nhắm đến mục tiêu hoạt động tương tự như vậy, nhưng hoạt động hoàn toàn tự động. Sử dụng 2 lớp: HTMLPage - xác định vị trí một Form, HTMLForm - lưu giữ thông tin form và điền dữ liệu lên form. Sau quá trình Posting Form, một trang HTML kết quả được trả về. Phương thức post nằm trong lớp HTTPPage: public void post(HTMLForm form) throws IOException{ http.getClientHeaders().set("Content-Type", "application/x-www-form- urlencoded"); http.send(form.getAction(),form.toString()); processPage(null);//phương thức xử lý đối tượng callback } Sử dụng gói thư viện Swing cho việc phân tích cú pháp HTML Từ phiên bản 1.2, JAVA đưa ra gói thư viện Swing hỗ trợ việc phân tích cú pháp HTML Tạo đối tượng Callback cho việc phân tích HTML Để phân tích được trang HTML ta tạo ra một đối tượng HTMLParserCallback dẫn xuất từ lớp javax.swing.text.html.HTMLEditorKit . Bằng cách ghi đè các phương thức trong đối tượng HTMLEditorKit ta có thể xử lý theo ý muốn nội dung trang HTML. Sau đây là các phương thức cần thiết để xử lý nội dung HTML được sử dụng trong đề tài: public void handleComment(char[] data,int pos) Phương thức này được gọi bởi Swing Parser khi một chú thích HTML được định vị. Lời chú thích được lưu giữ trong data. Tham số pos đưa ra vị trí hiện tại của nó . public void handleEndTag(HTML.Tag t,int pos) Phương thức này được gọi bởi Swing Parser khi một thẻ đóng HTML được định vị. Tham số pos đưa ra vị trí hiện tại của nó. public void handleSimpleTag(HTML.Tag t,MutableAttributeSet a,int pos) Phương thức này được gọi bởi Swing Parser khi một thẻ HTML đơn t được định vị. Tham số a là tập các thuộc tính của thẻ t. Tham số pos đưa ra vị trí hiện tại của nó. public void handleStartTag(HTML.Tag t,MutableAttributeSet a,int pos) Phương thức này được gọi bởi Swing Parser khi một thẻ mở t HTML được định vị. Tham số a là tập các thuộc tính của thẻ t. Tham số pos đưa ra vị trí hiện tại của nó public void handleText(char[] data,int pos) Phương thức này được gọi bởi Swing Parser khi một đoạn text HTML được định vị. Tham số pos đưa ra vị trí hiện tại của nó. KHẢO SÁT