Tải bản đầy đủ - 0 (trang)
9 Phương pháp tổng hợp thông tin

9 Phương pháp tổng hợp thông tin

Tải bản đầy đủ - 0trang

thể hiểu một cách đơn giản hơn nó là một mẫu (pattern) dùng để mô tả một

lớp ký tự nào đó.

Áp dụng vào trong vấn đề thu thập thơng tin, biểu thức chính quy đóng

một vai trò quan trọng trong việc bóc tách thơng tin, sử dụng thành thạo biểu

thức chính quy ta có thể áp dụng để bóc tách được nội dung của một trang

HTML.

Trong PHP, ta có thể sử dụng biểu thức chính quy thơng qua hàm regex.

PHP cung cấp 3 nhóm hàm regex tên của chúng được bắt đầu bởi Ereg,

Mb_ereg và Preg. Dưới đây chúng ta chỉ đề cập đến nhóm hàm Preg. Một số

hàm phổ biến trong nhóm hàm Preg là:





Preg_match: sử dụng khi muốn lấy ra một chuỗi trong một chuỗi nguồn



khác, cấu trúc hàm như sau:

Preg_match($pattern,$string, $match)

Trong đó:

$pattern: Biểu thức chính quy.

$string: Chuỗi nguồn.

$match: Lưu kết quả trả về.





Preg_match_all: hồn tồn tương tự như đối với preg_match nhưng có

sự khác biệt duy nhất đó là nó sẽ thực hiện cho đến khi so khớp hết với

chuỗi nguồn.

Biểu thức chính quy bao gồm 11 ký tự, cặp ký tự mang ý nghĩa đặc biệt,



được thể hiện ở bảng dưới đây:

Bảng 1.1 Các ký tự trong biểu thức chính quy

Ký tự

{a,b}



Ý nghĩa

Thể hiện ký tự



Ví dụ

a{1,3}



đúng trước nó phải

xuất hiện ít nhất a



 22 



Kết quả

a,aa,aaa,



lần và nhiều nhất là

b lần

Bắt đầu và kết thúc



[…]



một lớp ký tự.

Bắt đầu và kết thúc



(…)



[a-z]



Tập hợp tất các ký

tự từ a- z



một so khớp con

Giải phóng ký tự



\



đặc biệt

Quy định ký tự

đằng sau nó phải

xuất hiện đầu tiên



^



trong chuỗi. nếu nó



Tập hợp tất cả các

[^a-z]



nằm trong […] thì



ký tự khơng phải là

các ký tự a-z



có ý phủ định

Quy định ký tự

$



trước nó phải kết



(.*)basic$



thúc ở vị trí cuối

Ký tự thay thế cho

.



bất kỳ ký tự nào trừ



.*



|

?



ký tự xuống dòng

Hoặc

Tồn tại hoặc khơng

Lặp nhiều lần hoặc



a(c|d)b

ab?c



*



khơng lặp

Lặp ít nhất một lần



+



a*

a+



Chuỗi phải kết thúc

bởi từ basic

Lấy tất cả các ký tự

trên 1 dòng

acb,adb

abc,ac

Khơng có,

a,aa,aaaa,….

a,aa,aaa…



Ngồi các ký tự trên thì trên thực tế còn có những ký tự khơng in được

như: esc, space… Để giải quyết vấn đề này chúng ta sử dụng tổ hợp phím như

trong bảng sau:

Bảng 1.2 Tổ hợp phím trong biểu thức chính quy



 23 



Ký tự

\t

\n

\e

\s

\d

\v



Ý nghĩa

Tab

Xuống dòng

Esc

Space

Thay thế cho cách ký tự là số

Thay thế cho tất cả các ký tự là chữ thường và chữ in hoa.



 24 



1.9.2 DOM và XML





Phương pháp sử dụng DOM XML

DOM (Document Object Model) là mô hình các đối tượng văn bản,



trong trường hợp này ta có thể tạm hiểu nó như là một "cây" mơ tả cấu trúc

của văn bản.

DOM là phần quan trọng trong định nghĩa các thành phần của một tài

liệu XML. DOM trong HTML ngoài việc thể hiện các thành phần một trang

web còn cung cấp các phương pháp đặc thù của HTML tùy vào hỗ trợ của

trình duyệt (IE hay FireFox) như bẫy sự kiện hay thay đổi classCSS. DOM

giờ đây được dùng nhiều bởi thư viện DOMXML của PHP.

Cấu trúc của DOM: Trước khi bắt đầu làm việc với DOM, chúng ta cần

hình dung thực sự DOM là gì?

DOM là một tập của các nút, hay những mẩu thông tin, được tổ chức

trong một hệ phân cấp. Hệ phân cấp này cho phép một người phát triển điều

hướng quanh biểu đồ hình cây để tìm kiếm thơng tin cụ thể. Phân tích cấu trúc

thường đòi hỏi tồn bộ tài liệu phải được nạp và hệ phân cấp cần được xây

dựng trước khi cơng việc được hồn thành. Bởi vì nó được dựa trên một hệ

phân cấp của thông tin.

Đối với các tài liệu tương đối lớn, việc phân tích và nạp tồn bộ tài liệu

có thể rất chậm và chiếm nhiều tài nguyên, nên các phương tiện khác sẽ tốt

hơn khi làm việc với dữ liệu này. Những mơ hình dựa trên sự kiện, như là API

đơn giản dành cho XML sẽ làm việc trên luồng của dữ liệu bằng cách xử lý

dữ liệu khi nó đi qua. Một API dựa trên sự kiện không cần phải xây dựng cây

dữ liệu trong bộ nhớ, nhưng nó khơng cho phép một người phát triển thay đổi

dữ liệu trong tài liệu gốc.

Theo cách khác, DOM cũng cung cấp một API cho phép một người phát

triển thêm, sửa, di chuyển, hay xóa các nút tại bất cứ vị trí nào trên cây dữ

liệu để tạo ra một ứng dụng.

 25 



Về tổng quan, các phần cơ bản của tệp XML bao gồm:

Khai báo XML: Khai báo cơ bản xác định tệp này

như là một tài liệu XML. Nó ít khi chỉ định một mã hóa trong khai báo, như

hiển thị bên dưới. Theo cách này, trình phân tích có thể đọc các tài liệu XML,

cho dù tệp XML sử dụng bất cứ ngơn ngữ hay mã hóa nào, nhưng với điều

kiện trình phân tích phải hiểu được các mã hóa đó.

Khai báo DOCTYPE: XML là một cách thuận tiện để trao đổi thông tin

giữa con người và các thiết bị máy móc, nhưng để nó hoạt động tốt, cần thiết

phải có một bảng từ vựng chung. Tùy chọn DOCTYPE có thể được sử dụng

để chỉ định một tài liệu - trong trường hợp này, nó là orders.dtd - để so sánh

với tệp này nhằm đảm bảo không xảy ra sự thất lạc hay thiếu thơng tin (ví dụ,

một userid bị thiếu hay tên phần tử bị sai chính tả). Những tài liệu được xử lý

theo cách này được coi như là các tài liệu hợp lệ.

Dữ liệu: Dữ liệu trong một tài liệu XML phải được chứa trong một phần

tử gốc đơn lẻ, như là phần tử orders dưới đây. Đối với một tài liệu XML sắp

được xử lý, nó phải được tổ chức tốt.









12341

pending



Silver Show Saddle, 16 inch

825.00

1





Premium Cinch

49.00

1







251222

pending



 26 





Winter Blanket (78 inch)

20

10











Hàm lọc dữ liệu bằng domxml



function getTextBetweenTags($tag, $html, $strict=0)

{

/*** a new dom object ***/

$dom = new domDocument;

/*** load the html into the object ***/

if($strict==1)

{

$dom->loadXML($html);

}

else

{

$dom->loadHTML($html);

}

/*** discard white space ***/

$dom->preserveWhiteSpace = false;

/*** the tag by its tag name ***/

$content = $dom->getElementsByTagname($tag);

/*** the array to return ***/

$out = array();

foreach ($content as $item)

{

/*** add node value to the out array ***/

$out[] = $item->nodeValue;

}

/*** return the results ***/

return $out;

}



Trong đó các giá trị:

$tag: Tag để tìm



 27 



$html: Nguồn HTML hoặc XML để tìm kiếm.

$strict: Cho biết load HTML hay XML. Trong hàm trên chúng ta mặc

định load HTML.

1.9.3 Jquery





Giới thiệu về Jquery

JQuery: Là một thư viện kiểu mới của Javascript giúp đơn giản hóa cách



viết Javascript và tăng tốc độ xử lý các sự kiện trên trang web. JQuery thêm

tương tác Ajax vào trong trang web. JQuery được thiết kế để thay đổi cách

viết Javascript.

JQuery hướng tới các thành phần trong tài liệu HTML: Nếu không sử

dụng thư viện JavaScript này, bạn phải viết rất nhiều dòng code mới có thể đạt

được mục tiêu là di chuyển trong cấu trúc cây (hay còn gọi là DOMDocument Object Model) của một tài liệu HTML và chọn ra các thành phần

liên quan. Jquery cho phép bạn chọn bất cứ thành phần nào của tài liệu để đọc

một cách dễ dàng như sử dụng CSS.

Thay đổi giao diện của một trang web: CSS là công cụ rất mạnh để định

dạng một trang web nhưng nó có một nhược điểm là khơng phải tất cả các

trình duyệt đều hiển thị giống nhau. Cho nên JQuery ra đời để lấp chỗ trống

này, vì vậy các bạn có thể sử dụng nó để giúp trang web có thể hiển thị tốt

trên hầu hết các trình duyệt. Hơn nữa JQuery cũng có thể thay đổi class hoặc

những định dạng CSS đã được áp dụng lên bất cứ thành phần nào của tài liệu

HTML ngay cả khi trang web đó đã được trình duyệt load thành công.

Thay đổi nội dung của tài liệu: Jquery không phải chỉ có thể thay đổi bề

ngồi của trang web, nó cũng có thể thay đổi nội dung của chính tài liệu đó

chỉ với vài dòng code. Nó có thể thêm hoặc bớt nội dung trên trang, hình ảnh

có thể được thêm vào hoặc đổi sang hình khác, danh sách có thể được sắp xếp

lại hoặc thậm chí cả cấu trúc HTML của một trang web cũng có thể được viết

lại và mở rộng. Tất cả những điều này bạn hoàn tồn có thể làm được nhờ sự

 28 



giúp đỡ của giao diện lập trình ứng dụng API (Application Programming

Interface)

Tương tác với người dùng: Cho dù công cụ bạn dùng có mạnh mẽ đến

mấy, nhưng nếu bạn khơng có quyền quyết định khi nào nó được sử dụng thì

cơng cụ đó cũng coi như bỏ. Với thư viện JavaScript như JQuery, nó cho bạn

nhiều cách để tương tác với người dùng ví dụ như khi người dùng nhấp chuột

vào đường link thì sẽ có gì xảy ra. Nhưng cái hay của nó là khơng làm cho

code HTML của bạn rối lên chính là nhờ các Event Handlers. Hơn nữa Event

Handler API sẽ bảo đảm rằng trang web của bạn tương thích hầu hết với các

trình duyệt.

Tạo hiệu ứng động cho những thay đổi của tài liệu: Để tương tác tốt với

người dùng, các nhà thiết kế web phải cho người dùng thấy được hiệu ứng gì

sẽ xảy ra khi họ làm một tác vụ nào đó. JQuery cho phép bạn sử dụng rất

nhiều hiệu ứng động như mờ dần, chạy dọc chạy ngang…Nó còn cho phép

bạn tự tạo ra các hiệu ứng của riêng mình.

Lấy thơng tin từ server mà khơng cần tải lại trang web. Đây chính là

cơng nghệ ngày càng trở nên phổ biến AJAX (Asynchronous JavaScript and

XML- JavaScript và XML khơng đồng bộ), nó giúp người thiết kế web tạo ra

những trang web tương tác cực tốt và nhiều tính năng. Thư viện JQuery loại

bỏ sự phức tạp của trình duyệt trong quá trình này và cho phép người phát

triển web có thể tập trung vào các tính năng đầu cuối. Đơn giản hố các tác vụ

JavaScript. Ngồi những tính năng như đã nêu ở trên, JQuery còn cho phép

bạn viết code JavaScript đơn giản hơn nhiều so với cách truyền thống như là

các vòng lặp và điều khiển mảng.





Cách sử dụng Jquery selector



 29 



JQuery selector giúp chúng ta dễ dàng truy vấn đến các phần tử DOM

(Document Object Model – Mơ hình đối tượng tài liệu) một cách nhanh nhất,

code đơn giản và ngắn ngọn nhất.

Ví dụ: để truy vấn đến phần tử có id là header, với cách viết javascript

thông thường bạn phải viết như sau: document.getElementById("header")

Thì với jQuery, cơng việc chỉ còn đơn giản như sau: $("#header") như vậy là

chúng ta đã lấy được nội dung của toàn bộ thẻ header.

Để sử dụng một jquery selector chúng ta sẽ sử dụng theo cú pháp sau: $

(“css selector”) hoặc jquery(“css selector”)

Dưới đây là bảng mô tả ý nghĩa của các jquery selector:



 30 



Bảng 1.3 Cách sử dụng Jquery selector



Thành phần

selector



CSS selector



Jquery Selector



Mô tả



Chọn tất cả các

Tên thẻ HTML

(type selector )



thẻ div trong tài

div



$(‘div’)



liệu.



Chỉ chọn phần

Id



#header



$(header)



tử có id là

header.

Chọn tất cả các



Class



.content



$(‘.content’)



phần tử có class

có tên là content.

Lựa chọn tất cả



Universal selector



*



$(‘*’)



các phần tử có

trong tài liệu

HTML.



Descendantselector



Form input



$(‘form

input’)



 31 



Chọn tất cả các

thành phần input

của from.



Chọn tất cả các

Child selector



ul>il



$(‘ul>il’)



thành phần li

(cấp 1 )trong tài

liệu HTML.

Chọn thành phần



Adjacent selector



div+em



$(‘div +em’)



em phía sau liền

kề thẻ div trong

tài liệu HTML.

Chọn thành phần

em liền kề phía



Sibling slector



Div~em



$(‘div~em’)



trước của thẻ div

trong tài liệu

HTML.



 32 



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

9 Phương pháp tổng hợp thông tin

Tải bản đầy đủ ngay(0 tr)

×