Phân tích
Ta đưa ra hướng tiếp cận là sử dụng một bộ HTML Parser được cung cấp dưới dạng mã nguồn mở (module này do tác giả Simon Morier công bố)
Các lớp quan trọng
Tên trường Kiểu dữ liệu Độ dài Ràng buộc Mô tả
Id Int 4 Khóa chính ID của bản ghi
UserId Int 4 Không Null ID của khách hàng
HtmlWeb Lớp hỗ trợ lấy tài liệu HTML thông qua giao thức HTTP
HtmlDocument Chứa cấu trúc đầy đủ của tài liệu HTML nằm trong
bộ nhớ
HtmlNode Đại diện cho một nút HTML khi biểu diễn tài liệu
HTML trong mô hình DOM
HtmlTextNode Đại diện cho một nút văn bản trong tài liệu HTML
HtmlAttribute Đại diện cho một thuộc tính HTML được định
nghĩa theo chuẩn của W3C
HtmlNodeCollection Chứa một danh sách hay một tập hợp các nút
HTML
HtmlAttributeCollection Chứa một danh sách hay một tập hợp các thuộc tính HTML
Quan hệ kế thừa và kết tập của các lớp trên
+HtmlDocument() +Load(in html : string) +Parse() +CreateNode(in type) +CreateAttribute() -_documentnode -_streamencoding HtmlDocument +HtmlNode() +HasAttributes() : bool +HasChildNodes() : bool -_nodetype -_nextnode -_prevnode -_parentnode -_childnodes +InnerHtml +InnerText -ChildNodes HtmlNode +InnerHtml +OuterHtml +Text : string HtmlTextNode nodeChildren : HtmlNodeCollection nodeAttributes : HtmlAttributeCollection nodeDocument : HtmlNode 1 * 1 * 1 *
HtmlWeb: Cung cấp các phương thức cho phép tải trang HTML vào bộ nhớ theo nhiều cách, trang HTML có thể được tải từ một trang nằm trên ở cứng hoặc tải trực tiếp thông qua URL.
public HtmlDocument Load(string url)
{
//implement }
Tham số:
url : Địa chỉ URL của trang Web hoặc đường dẫn theo giao thức file
Trả về
Trả về một đối tượng HtmlDocument lưu trong bộ nhớ
Mô tả
Nếu truyền vào là một URL nó sẽ thực hiện gửi yêu cầu đến máy chủ để tải trang Web về. Đồng thời quá trình phân tích được thực hiện luôn.
HtmlDocument: Sau khi thực hiện tải một nội dung HTML về máy, chúng được lưu trữ trong một đối tượng HtmlDocument. Tất cả mọi thao tác đọc, sửa, xóa đều được thực hiện trong bộ nhớ và tác động trực tiếp lên đối tượng này. Chúng ta cũng có thể lưu nội dung của một đối tượng thành một tài liệu HTML dưới dạng file. Việc thực hiện phân tích một tài liệu HTML được thực hiện bên trong bởi một hàm phân tích. Nguyên lí làm việc của hàm được mô tả như trên lí thuyết.
Từ đối tượng HtmlDocument ta có thể truy xuất đến một nút bất kì trên cây DOM thông qua nút gốc tuơng ứng với một tài liệu HTML. Từ nút gốc có kiểu
HtmlNode bằng những phương thức được cung cấp bởi lớp đó ta có thể tìm được các nút khác trên cây.
HtmlNode : Lớp được xây dựng bên trong các phương thức cần thiết cho các thao tác trên cây. Đặc biệt để áp dụng cho thuật toán bóc tách bên trong một thực thể
HtmlNode cung cấp các thuộc tính truy xuất đến các thông tin cần thiết
ChildNodes: chứa danh sách các nút con.
ParentNode: nút cha của nút hiện tại
Name: tên của nút đồng thời là là tên của thẻ tương ứng.
InnerHtml: chứa phần HTML nằm bên trong thẻ tương ứng với nút
InnerText: chứa phần text nằm bên trong thẻ tương ứng
OutnerHtml: chứa phần HTML nằm bao cả thẻ của nút hiện tại Ví dụ :
Nút hiện tại tương ứng với thẻ <tr>
=> có ChildNodes chứa một nút tương ứng thẻ <td> ParentNode là nút tương ứng thẻ <tr>
Name là “tr”
InnerHtml là <td>AAA</td>
InnerText là AAA
OutnerHtml là <tr><td>AAA</td></tr>