1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website lọc, trích thông tin từ nhiều nguồn

72 189 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 3,29 MB
File đính kèm khoaluan_nhuquynh.rar (8 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong những năm gần đây, sự phát triển vượt bậc của công nghệ thông tin đã làm tăng số lượng giao dịch thông tin trên mạng Internet một cách đáng kể đặc biệt là thư viện điện tử, tin tức điện tử. Do đó thông tin, tin tức xuất hiện trên mạng Internet cũng tăng theo với một tốc độ chóng mặt và liên tục có sự thay đổi.Với lượng thông tin đồ sộ như vậy, một yêu cầu lớn đặt ra đối với chúng ta là làm sao tổ chức và tìm kiếm thông tin có lợi và hiệu quả nhất. Việc thu thập, phân loại và trích xuất thông tin thông qua các website khác nhau hiện nay đang có nhu cầu rất lớn. Nhưng một thực tế là khối lượng thông tin quá lớn, việc thu thập và phân loại dữ liệu thủ công là điều rất khó khăn và phức tạp. Hướng giải quyết là xây dựng một hệ thống website cho phép thu thập và phân loại các thông tin trên. Việc tổng hợp thông tin từ nhiều nguồn khác nhau cung cấp cho người dùng cái nhìn tổng quát, đa chiều về thông tin mà người dùng quan tâm. Nhằm tìm hiểu và xây dựng các quá trình tìm kiếm rút trích, bóc tách thông tin từ nhiều trang web khác nhau. Qua đó xây dựng một website thông tin để thu thập, đánh giá thông tin tự động trên Internet phục vụ cho người đọc có thể nắm bắt được thông tin một cách dễ dàng, nhanh chóng và tiết kiệm thời gian. Chính vì vậy em chọn đề tài “Xây dựng website lọc, trích thông tin từ nhiều nguồn”.

Trang 1

LỜI CẢM ƠN

Trong suốt thời gian nghiên cứu khóa luận này, ngoài sự nỗ lực của bảnthân, em còn nhận được sự giúp đỡ, chỉ bảo tận tình của các thầy giáo, cô giáotrong khoa Toán – Công Nghệ, trường Đại Học Hùng Vương

Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo, Th.S ĐinhThái Sơn- giảng viên trường Đại Học Hùng Vương Thầy đã giành nhiều thờigian quý báu tận tình hướng dẫn em trong suốt quá trình thực hiện khóa luậnnày, đồng thời, thầy còn là người giúp em lĩnh hội được nhiều kiến thứcchuyên môn và rèn luyện cho em tác phong nghiên cứu đề tài

Qua đây em xin gửi lời cảm ơn chân thành và sâu sắc tới các thầy giáo

cô giáo trong khoa Toán - Công Nghệ đã nhiệt tình giúp đỡ em trong suốt quátrình học tập cũng như khi em thực hiện và hoàn thiện khóa luận này

Mặc dù đã rất cố gắng song khóa luận của em không tránh khỏi nhữngthiếu sót Vì vậy em rất mong nhận được sự góp ý của các thầy giáo, cô giáo

và các bạn để khóa luận được hoàn thiện hơn

Em xin chân thành cảm ơn!

Việt Trì, Tháng 5 năm 2014 Sinh viên

Hà Thị Như Quỳnh

Trang 2

MỤC LỤC

Trang 3

DANH MỤC VIẾT TẮT

API (Application Programming

Interface) Giao diện lập trình ứng dụng CSS ( Cascading Style Sheets) Tập tin định kiểu theo tầng

HTML ( HyperText Markup Language) Ngôn ngữ đánh dấu siêu văn bản

HTTP (HyperText Transfer Protocol ) Giao thức truyền tải siêu văn bản

URL ( Uniform Resource Locator ) Địa chỉ Website

XML ( EXtensible Markup Language) Ngôn ngữ đánh dấu mở rộng

XHTML ( Extensible HyperText Markup

Language)

Ngôn ngữ đánh dấu siêu văn bản

mở rộng

Trang 4

DANH MỤC BẢNG BIỂU

Trang 5

DANH MỤC HÌNH ẢNH

Trang 6

MỞ ĐẦU

1. Lý do chọn đề tài khóa luận

Trong những năm gần đây, sự phát triển vượt bậc của công nghệ thôngtin đã làm tăng số lượng giao dịch thông tin trên mạng Internet một cách đáng

kể đặc biệt là thư viện điện tử, tin tức điện tử Do đó thông tin, tin tức xuấthiện trên mạng Internet cũng tăng theo với một tốc độ chóng mặt và liên tục

có sự thay đổi

Với lượng thông tin đồ sộ như vậy, một yêu cầu lớn đặt ra đối với chúng

ta là làm sao tổ chức và tìm kiếm thông tin có lợi và hiệu quả nhất Việc thuthập, phân loại và trích xuất thông tin thông qua các website khác nhau hiệnnay đang có nhu cầu rất lớn Nhưng một thực tế là khối lượng thông tin quálớn, việc thu thập và phân loại dữ liệu thủ công là điều rất khó khăn vàphức tạp Hướng giải quyết là xây dựng một hệ thống website cho phép thuthập và phân loại các thông tin trên

Việc tổng hợp thông tin từ nhiều nguồn khác nhau cung cấp cho ngườidùng cái nhìn tổng quát, đa chiều về thông tin mà người dùng quan tâm.Nhằm tìm hiểu và xây dựng các quá trình tìm kiếm rút trích, bóc tách thôngtin từ nhiều trang web khác nhau Qua đó xây dựng một website thông tin đểthu thập, đánh giá thông tin tự động trên Internet phục vụ cho người đọc cóthể nắm bắt được thông tin một cách dễ dàng, nhanh chóng và tiết kiệm thờigian

Chính vì vậy em chọn đề tài “Xây dựng website lọc, trích thông tin từ

nhiều nguồn”.

2. Mục tiêu khóa luận

Mục tiêu của khóa luận nhằm tìm hiểu và nghiên cứu cách thức, quátrình rút trích và bóc tách thông tin tự động từ nội dung của các website trêninternet qua đó xây dựng một website tổng hợp thông tin

3. Nhiệm vụ nghiên cứu

Trang 7

Sưu tập các tài liệu, giáo trình liên quan đến trình thu thập web, cácphương pháp bóc tách dữ liệu, các kỹ thuật lấy trang tin, để xây dựng websitetổng hợp tin tức từ nhiều nguồn.

4. Phương pháp nghiên cứu

• Phương pháp nghiên cứu lý luận: Đọc và nghiên cứu tài liệu, giáo trình

có liên quan đến mã nguồn rồi phân hóa, hệ thống hóa các kiến thức

• Phương pháp tổng kết kinh nghiệm: Qua việc nghiên cứu, tham khảotài liệu, giáo trình từ đó rút ra kinh nghiệm để áp dụng vào việc nghiêncứu

• Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến của giảng viên trực tiếphướng dẫn, các giảng viên khác để hoàn thiện về mặt nội dung và hìnhthức của khóa luận

5. Đối tượng và phạm vi nghiên cứu

• Đối tượng: Nghiên cứu về trình thu thập web, các phương pháp bóctách dữ liệu, các kỹ thuật lấy trang tin

• Phạm vi: Xây dựng website tổng hợp tin tức từ nhiều nguồn

6. Ý nghĩa khoa học

Qua nghiên cứu đề tài đã bước đầu đề cập đến các giải pháp kỹ thuậttrong thu thập thông tin tự động trên internet, phục vụ cho việc phân tíchthông tin thu thập được theo lĩnh vực, chủ đề khác nhau nhằm giúp cho ngườidùng theo dõi thông tin một cách thuận tiện, dễ dàng

Đề tài nghiên cứu giúp sinh viên có khả năng thực hành tốt hơn khi xâydựng website Mặt khác, đề tài là tài liệu tham khảo dành cho các bạn sinhviên và các thầy cô quan tâm đến vấn đề này

7. Bố cục của khóa luận

Ngoài phần mở đầu, kết luận, tài liệu tham khảo, khóa luận được chiathành các chương

Chương 1: Tổng quan về kỹ thuật bóc tách thông tin

Chương 2: Thiết kế hệ thống website

Trang 8

Chương 3: Xây dựng phần mềm

Trang 9

CHƯƠNG 1 TỔNG QUAN VỀ KỸ THUẬT BÓC TÁCH THÔNG TIN

1.1 Giới thiệu về trình thu thập web

Trình thu thập web (Web crawler) là một chương trình khai thác cấu trúc

đồ thị của web di chuyển từ trang này qua trang khác Thời kỳ đầu nó cónhững tên khá tượng hình như bọ web, rô-bốt, nhện và sâu, nhưng ngày naytên gọi phổ biến nhất là vẫn là trình thu thập web Mặc dù vậy cụm từ “thuthập” không lột tả được hết tốc độ của những chương trình này, vì chúng cótốc độ làm việc đáng kinh ngạc, có thể thu thập dữ liệu lên đến hàng chụcngàn trang trong vòng một vài phút

Từ thời kỳ đầu, một động lực quan trọng thúc đẩy quá trình phát triểncủa việc thiết kế trình thu thập web là lấy được nội dung các trang web vàthêm chúng hoặc đường dẫn của chúng vào một kho lưu trữ trang – một kiểukho lưu trữ có thể dùng để phục vụ cho các ứng dụng cụ thể trong công cụ tìmkiếm web (search engine)

Các trình thu thập thường bắt đầu bằng cách chọn một số các đường dẫn(URL) ứng với các trang web sẽ ghé thăm đầu tiên, các trang này được gọi làcác trang hạt giống

Quá trình này chỉ dừng lại khi trình thu thập đã thu thập đủ số trang yêucầu hoặc frontier là rỗng, tức là không còn URL để duyệt Tuy mô tả này có

vẻ đơn giản nhưng đằng sau chúng là khá nhiều vấn đề hóc búa liên quan đếnkết nối mạng, bẫy nhện, tiêu chuẩn trích xuất URL, chuẩn hóa các trangHTML, bóc tách nội dung trang HTML vv

Sau khi đã có được một danh sách các URL dùng cho việc thu thập, ta sẽthực hiện quá trình lấy trang Tất cả các trang được lấy một lần và được lưuvào một kho lưu trữ giống như cơ sở dữ liệu của công cụ tìm kiếm, đến đâykhông cần thu thập thêm Tuy nhiên web là một thực thể năng động với cáckhông gian con liên tục phát triển và thay đổi nhanh một cách chóng mặt, vì

Trang 10

thế thông tin phải liên tục được thu thập để giúp các ứng dụng luôn cập nhật,

ví dụ như bổ sung các trang mới loại bỏ các trang đã bị xóa, di chuyển hoặccập nhật các trang bị sửa đổi

Các trang web chủ yếu được viết bằng các ngôn ngữ đánh dấu nhưHTML, XHTML và được nhắm đến đối tượng sử dụng là con người chứkhông phải máy tính

Các trang web lại chứa đựng nhiều thông tin có ích mà con người có thểmuốn thu thập và lưu trữ lại, chính vì thế mà cần phải có những kỹ thuật bóctách và trích xuất thông tin theo một cơ chế tự động Các kỹ thuật bóc tách dữliệu (parsing) có thể ở mức đơn giản như việc bóc tách các siêu liên kết, hoặc

ở mức phức tạp hơn một chút là bóc tách bất kỳ phần nội dung nào trong mộttrang web

Về bản chất, quá trình thu thập web chính là quá trình duyệt đệ quy một

đồ thị Các web được xem như một đồ thị với các trang là các đỉnh (node) vàcác siêu liên kết là các cạnh Quá trình lấy trang và trích xuất các liên kết bêntrong nó tương tự như việc mở rộng tìm kiếm một đỉnh trong đồ thị Trình thuthập sử dụng kỹ thuật tìm kiếm khác nhau sẽ cho kết quả tìm kiếm khác nhau,

so sánh hiệu suất của các kỹ thuật tìm kiếm này từ đó rút ra đánh giá về hiệusuất của các trình thu thập

Trình thu thập web là thành phần đầu tiên trong toàn bộ hệ thống searchengine Mục đích của các hệ thống search engine là số lượng trang web đầuvào đạt giá trị cao nhất có thể, trong đó trình thu thập web làm công việcchính là duy trì cơ sở dữ liệu được đánh chỉ mục, trả về giá trị của bộ thu thập

và bộ lập chỉ mục cho hàng triệu truy vấn nhận được từ người dùng Các trangđược đánh chỉ mục dựa trên các thuật toán ưu tiên hoặc các phương pháp dựatrên kinh nghiệm (heuristic) Ngoài ra, chúng ta có thể sử dụng trình thu thậpweb để xây dựng các phần mềm tập trung thông tin, các trang web tổng hợpthông tin, dựa trên cơ chế tự động tìm và phát hiện tài nguyên

Trang 11

1.2 Cách xây dựng một hạ tầng thu thập web

Trình thu thập chứa một danh sách các URL chưa được thăm gọi là biêngiới frontier Danh sách được khởi tạo bởi một số các URL hạt giống - cácURL này được cung cấp bởi một người dùng hoặc một chương trình khác.Mỗi vòng lặp là một quá trình gồm các bước:

- Lấy một URL tiếp theo từ frontier ra để thu thập

- Lấy trang tương ứng với URL thông qua HTTP

- Bóc tách trang vừa lấy để trích xuất ra các URL và các nội dung thông tin cụthể

- Cuối cùng là thêm các URL chưa thăm vào frontier

Trước khi các URL được thêm vào frontier chúng có thể được đánh chỉmục dựa trên số lượng truy cập vào trang web ứng với URL Quá trình thuthập sẽ chấm dứt ngay khi trình thu thập đạt đủ số lượng trang nhất định hoặcfrontier rỗng, đây được gọi là trạng thái kết thúc (dead-end) của trình thuthập

ít quan trọng và giữ lại các URL ứng với các trang quan trọng Lưu ý rằng tốc

độ thêm các URL vào frontier nhanh gần bằng tốc độ thu thập thông tin Nó

có thể thêm tới 60000 URL ngay khi trình thu thập thu thập dữ liệu của 60000trang, giả định trung bình mỗi trang có khoảng 7 liên kết

Frontier có thể coi như một hàng đợi làm việc theo cơ chế FIFO (First InFirst Out) nghĩa là vào trước ra trước trong trường hợp chúng ta sử dụng thuật

Trang 12

toán tìm kiếm theo chiều rộng để thu thập thông tin Trình thu thập sử dụng

kỹ thuật tìm kiếm này gọi là trình thu thập theo chiều rộng Các URL được lấy

ra thu thập được chọn từ trên xuống dưới trong danh sách và các URL mớiđược thêm vào đuôi của danh sách Do miền giới hạn của frontier, ta phải đảmbảo các URL chỉ được lấy một lần Để tìm kiếm xem một URL mới đượctrích xuất đã có trong danh sách chưa là khá phức tạp vì số lượng trang là rấtlớn mỗi lần tìm kiếm là một lần chạy vòng for điều này là khá bất cập Vì vậy

có một giải pháp là sử dụng một phần bộ nhớ để duy trì một hàm băm vớiURL là khóa Hàm băm này sẽ sinh ra các giá trị băm tương ứng với mỗiURL Sở dĩ sử dụng hàm băm sẽ tìm kiếm nhanh hơn vì việc so sánh các giátrị băm nhanh hơn nhiều việc so sánh một giá trị với một khối dữ liệu lớn.Hiện nay do bộ nhớ máy tính là rất lớn nên vấn đề về bộ nhớ là khôngmấy quan trọng so với vấn đề về tốc độ Do vậy, cách sử dụng hàm băm được

sử dụng rộng rãi, mặc dù là tốn bộ nhớ hơn nhưng tốc độ tìm kiếm lại đượccải thiện đáng kể

Khi frontier đạt đến miền giới hạn, thì các trình thu thập theo chiều rộng

sẽ làm việc theo cơ chế sau: sau khi đưa một URL ra khỏi frontier để tiếnhành quá trình thu thập trang tương ứng thay vì việc lấy tất cả URL trongtrang này trình thu thập sẽ chỉ lấy URL chưa thăm đầu tiên và thêm vàofrontier

Frontier có thể coi như một hàng đợi ưu tiên trong trường hợp chúng ta

sử dụng thuật toán tìm kiếm theo lựa chọn tốt nhất Trình thu thập sử dụng kỹthuật tìm kiếm này gọi là trình thu thập ưu tiên Hàng đợi ưu tiên là một mảngvới các phần tử là các URL được sắp xếp theo điểm đánh giá

Trình thu thập ưu tiên sẽ làm việc theo cơ chế sau: URL được lấy ra khỏifrontier để tiến hành thu thập luôn là URL tốt nhất Sau khi thu thập trangtương ứng, các URL được trích xuất ra, được đưa vào frontier và các danhsách URL được sắp xếp lại theo điểm đánh giá Để tránh việc trùng lặp URL

Trang 13

chúng ta cũng duy trì một hàm băm với các khóa là URL để tra cứu.

Khi frontier đạt đến miền giới hạn, cơ chế làm việc của trình thu thập tối

ưu cũng giống với trình thu thập theo chiều rộng chỉ khác là các URL đượclấy là các URL tốt nhất (tức là URL có điểm đánh giá cao nhất)

Trong trường hợp trình thu thập nhận thấy frontier là danh sách rỗng(không thể lấy ra các URL tiếp theo để thu thập) thì quá trình thu thập sẽ kếtthúc Tuy vậy trường hợp rất hiếm xảy ra vì với một số URL hạt giống vàmiền giới hạn khá lớn frontier hiếm khi đạt trạng thái rỗng

1.4 Lược sử và kho lưu trữ trang

Lược sử thu thập dữ liệu là một danh sách đánh dấu theo thời gian cácURL được lấy bởi trình thu thập Một URL được đưa vào lược sử chỉ sau khi

đã trả về các URL bên trong nó Lược sử có thể sử dụng để phân tích và đánhgiá thông tin Lược sử được lưu trữ nhằm cung cấp cho một tra cứu nhanh đểkiểm tra xem một trang đã được thăm hay chưa Kiểm tra này là khá quantrọng nhằm tránh các trang bị thăm lại và tránh thêm việc thu thập lại cáctrang này Do kích thước của frontier có hạn và bộ nhớ của máy tính hiện nay

là vô cùng lớn nên việc duy trì một lược sử cần thiết nhằm nâng cao hiệu quảhoạt động của trình thu thập Một điều cần chú ý là phải chuẩn hóa URL trướckhi đưa vào lược sử

Khi một trang được lấy nó phải được lưu trữ và lập chỉ mục nhằm mụcđích phục vụ cho các ứng dụng sau này (chẳng hạn như công cụ tìm kiếm).Đây là công việc mà một kho lưu trữ trang phải làm Một kho lưu trữ trang ởdạng đơn giản sẽ chứa các trang thu thập theo từng file riêng biệt Trongtrường hợp đó, mỗi trang phải đặt trong một tệp tin duy nhất Một cách để làmđiều này là đặt mỗi trang URL tương ứng với một chuỗi sau đó sử dụng mộtvài dạng của hàm băm với xác suất xung đột thấp để mã hóa Giá trị kết quảcủa hàm băm được sử dụng làm tên của tập tin Bằng cách này chúng ta có độdài tên tập tin luôn cố định cho dù có bao nhiêu URL đi nữa Tất nhiên nếu

Trang 14

chỉ cần lưu trữ vài nghìn trang thì ta có thể sử dụng một hàm băm đơn giảnhơn Trong một số trường hợp các kho lưu trữ trang cũng có thể dùng để kiểmtra xem một URL đã được thu thập hay chưa trước khi chuyển đổi sang têntập tin 32 ký tự Trong những trường hợp này có thể bỏ đi cấu trúc dữ liệulược sử.

1.5 Cách lấy trang

Để lấy một trang web, chúng ta cần một máy khách HTTP (HTTP client)gửi một yêu cầu HTTP (HTTP request) cho trang đó và đọc các phản hồi.Client cần có thời gian trễ để đảm bảo rằng không bị mất thời gian không cầnthiết vào các máy chủ chậm hoặc đọc các trang lớn Trong thực tế chúng tathường hạn chế vấn đề này bằng cách cho client tải về khoảng 10-20 KB đầutiên của trang Client cần bóc tách được tiêu đề phản hồi cho các mã trạng thái

và chuyển hướng

Kiểm tra lỗi và xử lý ngoài luồng là rất quan trọng trong quá trình lấytrang vì chúng ta phải đối phó với hàng triệu máy chủ Trong quá trình lấytrang, trình thu thập không thể tự quyết định tài liệu nào được lập chỉ mục vàtài liệu nào không, do đó nó lấy tất cả những gì có thể Thậm chí dù xác địnhđược tài liệu vô ích thì nó cũng đã bỏ ra một chi phí đáng kể cho hoạt độngthu thập

1.6 Bóc tách trang

Khi một trang đã được lấy, chúng ta cần phân tích nội dung của nó đểtrích xuất thông tin, lấy ra các URL để mở ra hướng đi tiếp theo của các trìnhthu thập

Phân tích nội dung có thể là quá trình khai thác hyperlink/URL đơn giảnhoặc nó có thể bao gồm quá trình phức tạp hơn như lọc nội dung HTML đểphân tích thành mô hình thẻ HTML dạng cây (HTML tag tree) Phân tích nộidung cũng có thể bao gồm các bước chuyển đổi URL được trích xuất thànhdạng tiêu chuẩn, loại bỏ những từ ở phần đầu nội dung của trang và lấy các từ

Trang 15

còn lại ở phần thân.

Tiêu chuẩn trích xuất URL

Hàm bóc tách HTML có sẵn cho nhiều ngôn ngữ khác nhau Chúng cungcấp các chức năng để dễ dàng xác định các tag HTML và cặp các giá trị thuộctính liên quan trong một tài liệu HTML Để trích xuất siêu liên kết URL từmột trang Web, chúng ta có thể sử dụng các hàm bóc tách để tìm thẻ anchor

(thẻ <a>) và lấy các giá trị các thuộc tính href liên quan Trước tiên chúng ta

phải chuyển đổi tất cả các đường dẫn URL sang đường dẫn URL tuyệt đối vì

có nhiều đường dẫn URL viết không đúng quy chuẩn có thể cùng dẫn tới mộttrang Điều này là quan trọng để tránh lấy một trang nhiều lần Dưới đây làmột số bước điển hình được sử dụng trong thủ tục chuẩn hóa URL:

- Chuyển đổi giao thức và tên máy chủ thành dạng chữ thường

- Loại bỏ phần “tham khảo” trong URL

- Thực hiện mã hóa URL cho một vài những ký tự thường sử dụng như ’~’.Điều này sẽ tránh được việc thu thập lại 1 trang

- Đối với một vài URL, thêm ký tự ‘/’

- Sử dụng để nhận ra các trang web mặc định Những tên file như index.htmlhoặc index.htm có thể được loại bỏ trong đường dẫn URL với thừa nhận rằng

đó là những trang mặc định

- Loại bỏ ‘ ’ và đường dẫn trước nó trong phần URL

Điều quan trọng là đảm bảo tính nhất quán trong khi áp dụng các luậtchuẩn hóa Có thể hai luật khác nhau lại cho kết quả tốt như nhau miễn là ta

áp dụng các luật chuẩn hóa URL một cách nhất quán

Mô hình thẻ HTML dạng cây

Các trình thu thập có thể lấy ra giá trị của các URL hoặc một nội dungbất kỳ trong một trang web bằng cách kiểm tra phạm vi thẻ tag HTML chứachúng Để làm được điều này, trình thu thập có thể sử dụng mô hình thẻHTML dạng cây và phân tích cấu trúc DOM (Document Oject Model) của môhình này Phân tích cấu trúc DOM giúp trình thu thập có thể duyệt các node

Trang 16

trên cây này và chỉ lấy ra phần nội dung mà nó cần Hình dưới đây cho ta thấymột mô hình cây tương ứng với một mã nguồn URL

Hình 1.1 Mô hình cây tương ứng với một mã nguồn HTML

Có thể thấy thẻ <html> là gốc của cây, các thẻ bên trong nó là các node

mở rộng, và dữ liệu text là lá của cây

Trên thực tế, không phải văn bản HTML nào cũng được viết đúng quychuẩn như ví dụ trên HTML là ngôn ngữ không phân biệt chữ hoa hay chữthường (hai thẻ <tr> và <TR> đều là một) Các phần tử HTML cần có một thẻ

mở và một thẻ đóng, tuy nhiên điều này không phải luôn luôn đúng, có nhiềuphần tử không cần thẻ đóng, ví dụ các thẻ <br>, <hr> và <li> Ngoài ra khilồng nhau, các phần tử HTML cũng không cần thiết phải lồng nhau theo đúngthứ tự (tức là thẻ nào mở trước thì phải đóng sau)

Trang 17

Vì vậy trước khi lập mô hình cây cho một mã nguồn HTML chúng ta cầnmột quá trình chuyển đổi các tài liệu HTML ban đầu thành các tài liệu HTMLtiêu chuẩn, quá trình này gọi là chuẩn hóa các trang HTML Quá trình nàybao gồm việc chuyển đổi các thẻ sang dạng chữ thường, chèn thêm các thẻ vàsắp xếp lại thứ tự các thẻ trong tài liệu HTML Chuẩn hóa trang HTML là rấtcần thiết để việc lập mô hình cây được chính xác Nếu như trình thu thập chỉcần lấy các liên kết hoặc văn bản hoặc một phần văn bản thì có thể ta khôngcần sử dụng tới mô hình cây mà chỉ cần sử dụng kỹ thuật bóc tách HTML đơngiản Trình bóc tách như vậy cũng được hỗ trợ trong nhiều ngôn ngữ lập trình.

1.7 Các kỹ thuật thu thập web

Trong phần này chúng ta sẽ thảo luận về một số kỹ thuật thu thập dữ liệubao gồm:

- Kỹ thuật thu thập dữ liệu theo chiều sâu

- Kỹ thuật thu thập dữ liệu theo chiều rộng

- Kỹ thuật thu thập dữ liệu theo ngẫu nhiên

Như đã nói ở phần trước về bản chất, quá trình thu thập web chính là quátrình duyệt đệ quy một đồ thị Các web được xem như một đồ thị với cáctrang là các đỉnh (node) và các siêu liên kết là các cạnh Chính vì thế các kỹthuật thu thập dữ liệu cũng được xây dựng dựa trên các thuật toán tìm kiếmtrên đồ thị Các thuật toán tìm kiếm trên đồ thị bao gồm:

- Tìm kiếm theo chiều sâu (Depth-First Search): Là thuật toán tìm kiếmbằng cách mở rộng nút đồ thị theo chiều sâu

- Tìm kiếm theo chiều rộng (Breath-First Search): Là thuật toán tìmkiếm bằng cách mở rộng nút đồ thị theo chiều rộng

- Tìm kiếm theo lựa chọn tốt nhất (Best-First Search): Là một thuật toántìm kiếm tối ưu bằng cách mở rộng nút hứa hẹn nhất theo một quy tắc nào đó

1.7.1 Kỹ thuật thu thập dữ liệu theo chiều sâu

Quá trình thực hiện:

Trang 18

Bước 1: Lấy URL đầu tiên trong danh sách (frontier) để thu thập.

- Nếu có qua bước 2

- Nếu không qua bước 5

Bước 2: Lấy trang tương ứng với URL qua HTTP

- Nếu có qua bước 3

- Nếu không quay lại bước 1

Bước 3: Kiểm tra xem trang này đã được được thăm chưa?

- Nếu chưa qua bước 4

- Nếu rồi quay lại bước 1

Bước 4: Đánh dấu trang này đã được thăm Bóc tách trang và tìm cácliên kết có trong trang này

- Nếu có, thêm các liên kết vào đầu danh sách Quay lại bước 3

- Nếu không, quay lại bước 1

Bước 5: Kết thúc

1.7.2 Kỹ thuật thu thập dữ liệu theo chiều rộng

Quá trình thực hiện:

Bước 1: Lấy URL đầu tiên trong danh sách để thu thập

- Nếu có qua bước 2

- Nếu không qua bước 5

Bước 2: Lấy trang tương ứng với URL qua HTTP

- Nếu có qua bước 3

- Nếu không quay lại bước 1

Bước 3: Kiểm tra xem trang này đã được được thăm chưa?

- Nếu chưa qua bước 4

- Nếu rồi quay lại bước 1

Bước 4: Đánh dấu trang này đã được thăm Bóc tách trang và tìm cácliên kết có trong trang này

- Nếu có, thêm các liên kết vào cuối danh sách Quay lại bước 3

Trang 19

- Nếu không, quay lại bước 1.

Bước 5: Kết thúc

1.7.3 Kỹ thuật thu thập dữ liệu ngẫu nhiên

Bước 1: Lấy URL ngẫu nhiên trong danh sách để thu thập

- Nếu có qua bước 2

- Nếu không qua bước 5

Bước 2: Lấy trang tương ứng với URL qua HTTP

- Nếu có qua bước 3

- Nếu không quay lại bước 1

Bước 3: Kiểm tra xem trang này đã được được thăm chưa?

- Nếu chưa qua bước 4

- Nếu rồi quay lại bước 1

Bước 4: Đánh dấu trang này đã được thăm Bóc tách trang và tìm cácliên kết có trong trang này

- Nếu có, thêm các liên kết vào cuối danh sách Quay lại bước 3

- Nếu không, quay lại bước 1

Bước 5: Kết thúc

1.8 Kỹ thuật lấy nội dung trang web bằng CURL trong PHP

CURL: là một hàm trong PHP Hàm này cho phép đọc các trang web tảitệp tin lên trang, sử dụng CURL để tự động cập nhật dữ liệu từ nhiều trangweb Đặc biệt CURL có khả năng lấy dữ liệu được cả những trang bị chặn

bằng proxy thông qua curl_proxy() Một CURL cần bao gồm các phần:

Khởi tạo CURL: để khởi tạo một curl ta sử dụng hàm curl_init() hàmnày có thể có đối số hoặc không có đối số với đối số là một địa chỉ thamchiếu

Thiết lập các tùy chọn cho CURL: để thiết lập tùy chọn ta sử dụng cúpháp lệnh : curl_setopt ($biến khởi tạo curl, $option , $giá trị)

Trang 20

Thực hiện một CURL: để thực hiện một CURL ta sử dụng hàmcurl_exec ($ten curl) Sau khi một CURL được thực thi ta sẽ kết thúc phiênlàm việc này với hàm curl_close($ten curl).

Kỹ thuật lấy nội dung: Có hai cách sử dụng CURL để lấy dữ liệu

Cách 1: sử dụng GET để lấy dữ liệu từ một trang

function getPage($url, $referer, $timeout, $header){

curl_setopt ($curl, CURLOPT_URL, $url);

curl_setopt ($curl, CURLOPT_TIMEOUT, $timeout);

curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozi lla/%d.0",rand(4,5)));

curl_setopt ($curl, CURLOPT_HEADER, (int)$header);

curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);

$html = curl_exec ($curl);

curl_close ($curl);

return $html;

}

Trang 21

Cách 2: sử dụng POST để lấy dữ liệu

curl_setopt ($curl, CURLOPT_URL, $url);

curl_setopt ($curl, CURLOPT_TIMEOUT, $timeout);

curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla /%d.0",rand(4,5)));

curl_setopt ($curl, CURLOPT_HEADER, 0);

curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt ($curl, CURLOPT_POST, 1);

curl_setopt ($curl, CURLOPT_POSTFIELDS, $post);

curl_setopt ($curl, CURLOPT_HTTPHEADER,

• Tốc độ tải chậm hơn so với CURL

• Không thể thực hiện được việc tải trang khi trang web đó có thiết lập proxy

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

Có một số phương pháp bóc tách, thu thập thông tin đó là: Biểu thứcchính quy, DOM XML, JQUERY- Ajax

1.9.1 Biểu thức chính quy

Biểu thức chính quy (regular expressions hay regex): là một chuỗimiêu tả một bộ chuỗi khác, theo những quy tắc và cú pháp nhất định, hay có

Trang 22

thể hiểu một cách đơn giản hơn nó là một mẫu (pattern) dùng để mô tả mộtlớ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 đóngmột vai trò quan trọng trong việc bóc tách thông tin, sử dụng thành thạo biểuthức chính quy ta có thể áp dụng để bóc tách được nội dung của một trangHTML

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ồnkhá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: hoàn toà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ớichuỗ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

đúng trước nó phải xuất hiện ít nhất a

Trang 23

có ý phủ định

[^a-z]

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

ký tự không phải là các ký tự a-z

$

Quy định ký tự trước nó phải kết thúc ở vị trí cuối

(.*)basic$ Chuỗi phải kết thúc

bởi từ basic

Ký tự thay thế cho bất kỳ ký tự nào trừ

ký tự xuống dòng

trên 1 dòng

Không có, a,aa,aaaa,…

Ngoà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

Trang 25

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úccủ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àiliệu XML DOM trong HTML ngoài việc thể hiện các thành phần một trangweb còn cung cấp các phương pháp đặc thù của HTML tùy vào hỗ trợ củatrình duyệt (IE hay FireFox) như bẫy sự kiện hay thay đổi classCSS DOMgiờ đâ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ầnhì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ứctrong 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ềuhướng quanh biểu đồ hình cây để tìm kiếm thông tin cụ thể Phân tích cấu trúcthường đòi hỏi toàn bộ tài liệu phải được nạp và hệ phân cấp cần được xâydựng trước khi công việc được hoà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 toà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ốthơ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áttriể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

Trang 26

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 <?xml version"1.0"?> xác định tệp nàynhư 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ềukiệ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 tingiữ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ếtphả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ánhvớ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

<item instock="Y" itemid="SA15">

<name>Silver Show Saddle, 16 inch</name>

Trang 27

<item instock="Y" itemid="WB78">

<name>Winter Blanket (78 inch)</name>

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

$dom = new domDocument;

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

Trang 28

$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áchviết Javascript và tăng tốc độ xử lý các sự kiện trên trang web JQuery thêmtương tác Ajax vào trong trang web JQuery được thiết kế để thay đổi cáchviế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à DOM-Document Object Model) của một tài liệu HTML và chọn ra các thành phầnliê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 để đọcmộ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 để địnhdạng một trang web nhưng nó có một nhược điểm là không phải tất cả cáctrình duyệt đều hiển thị giống nhau Cho nên JQuery ra đời để lấp chỗ trốngnày, vì vậy các bạn có thể sử dụng nó để giúp trang web có thể hiển thị tốttrên hầu hết các trình duyệt Hơn nữa JQuery cũng có thể thay đổi class hoặcnhữ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ệuHTML 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ềngoà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ếplại hoặc thậm chí cả cấu trúc HTML của một trang web cũng có thể được viếtlại và mở rộng Tất cả những điều này bạn hoàn toàn có thể làm được nhờ sự

Trang 29

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

Tương tác với người dùng: Cho dù công cụ bạn dùng có mạnh mẽ đếnmấ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ạnnhiều cách để tương tác với người dùng ví dụ như khi người dùng nhấp chuộtvào đường link thì sẽ có gì xảy ra Nhưng cái hay của nó là không làm chocode HTML của bạn rối lên chính là nhờ các Event Handlers Hơn nữa EventHandler API sẽ bảo đảm rằng trang web của bạn tương thích hầu hết với cáctrì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ớingườ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ấtnhiều hiệu ứng động như mờ dần, chạy dọc chạy ngang…Nó còn cho phépbạ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 andXML- JavaScript và XML không đồng bộ), nó giúp người thiết kế web tạo ranhữ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áttriển web có thể tập trung vào các tính năng đầu cuối Đơn giản hoá các tác vụJavaScript Ngoài những tính năng như đã nêu ở trên, JQuery còn cho phépbạ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

Trang 30

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 javascriptthô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:

Trang 31

Chỉ chọn phần

tử có id là header

Chọn tất cả các phần tử có class

có tên là content

Lựa chọn tất cả các phần tử có trong tài liệu HTML

input’)

Chọn tất cả các thành phần inputcủa from

Trang 32

Child selector ul>il $(‘ul>il’)

Chọn tất cả các thành phần li (cấp 1 )trong tài liệu HTML

Chọn thành phần

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 trước của thẻ divtrong tài liệu HTML

Trang 33

CHƯƠNG 2 THIẾT KẾ HỆ THỐNG WEBSITE

2.1Đặc tả chi tiết và phân tích yêu cầu đề tài

2.1.1 Xây dựng bộ lõi bóc tin chung

• Yêu cầu: Yêu cầu đặt ra cần có một hệ thống tự động thu thập và bóctách nội dung thông tin theo yêu cầu trực quan của người sử dụng vớinội dung thông tin kết quả trả ra ở dạng chuẩn và có cấu trúc để trởthành đầu vào cho ứng dụng, hệ thống khác

• Cách tiếp cận: Sử dụng phương pháp phân tích mã HTML truy xuấttrực tiếp vào nội dung toàn diện rồi tiến hành bóc tách bằng cách sửTree-DOM Sau quy trình khai thác, nội dung sẽ trở thành độc lập vớiwebsite nguồn, được lưu trữ và tái sử dụng

2.1.2 Xây dựng bộ đọc nhận dạng dữ liệu theo từng Website nguồn

• Yêu cầu: Người sử dụng có thể chọn các website đã được định nghĩa cóthể lấy tin, và lấy tin về

• Cách tiếp cận: Dựa vào địa chỉ của website nguồn, lấy được mã nguồnHTML, sử dụng RSS để bóc tách nội dung tin, trả về các tin tức

2.1.3 Xây dựng tính năng quản trị và tương tác với dữ liệu bóc được

• Yêu cầu: Người quản trị có thể chỉnh sửa nội dung của phần dữ liệu đãđược bóc tách như thêm, sửa, xóa Và có thể sử dụng nó để đăng lênwebsite của mình theo ý muốn

• Cách tiếp cận: Sau khi khối dữ liệu lấy về được lưu vào cơ sở dữ liệu,người quản trị có thể tùy chỉnh nội dung dữ liệu theo ý muốn

2.1.4 Xây dựng tính năng đăng tin tự động sau khi đã lọc tin

• Yêu cầu: Người quản trị có thể lựa chọn khối dữ liệu lấy về sẽ đượchiện thị ngay lên website hoặc chờ biên tập lại nội dung sau đó mới chođăng lên website

• Cách tiếp cận: Với dữ liệu được lấy về, người quản trị có thể mặc định

nó hiện thị ngay trên website hoặc chỉnh sửa nội dung sau đó mới đănglên website bằng cách đặt trạng thái của khối dữ liệu đó là true hoặcfalse Nếu là true, thì khối dữ liệu đó sẽ hiện thị ngay lên trang web vàngược lại

Trang 34

2.1.5 Tự động cập nhật tin tức theo trang nguồn

• Yêu cầu: Khi lấy được tin từ trang nguồn, sau một thời gian thì tin đó ởtrang nguồn bị xóa, hoặc sửa thì tin tức ở website của mình cũng sẽ cậpnhật theo

• Cách tiếp cận: Vào trang nguồn nếu không có tin tức đó, thì xóa bỏ tintức đó trong website của mình

2.1.6 Sao lưu tin vào thư mục và xóa bỏ những tin cũ theo số ngày quy định

quá hạn.

• Yêu cầu: Vì tin tức nếu cứ lấy, sẽ càng ngày càng tích chứa nhiều Do

đó, cần có chức năng xóa bỏ những tin tức không cần thiết, nhưng phảisao lưu trước khi xóa

• Cách tiếp cận: Dựa vào ngày đăng của tin so sánh với ngày hiện tại nếuquá hạn thì sao lưu ra thư mục và thực hiện xóa bỏ tin trong cơ sở dữliệu

2.1.7 Dữ liệu sau bóc tách có thể loại bỏ một số định dạng

• Yêu cầu: Một số nội dung có định dạng phông chữ, kiểu chữ… củatrang nguồn, nhưng lại không phù hợp với website của mình, do đó cần

có chức năng xóa bỏ những định dạng không cần thiết

2.1.8 Xuất các tin tức thành tài liệu HTML

• Yêu cầu: Các chức năng như xuất dữ liệu, xuất thành tài liệu HTML trợgiúp việc đóng gói, chuyển mang dữ liệu, tuy nhiên tài liệu HTML xuấtbản còn tương đối thô sơ

Hệ thống thu thập vàbóc tách nội dung thông

tin

Thể hiệnnội dung

Quản lýnội dung

Bóc táchnội dungThu thập

Trang 35

Hình 2.1 Biểu đồ phân cấp chức năng

Chia nộidung đầuvào thànhcác danhmục trênmenu

Quản trị danh mục menu

Nhập bộlọc chonguồnđầu vàoxác địnhban đầu

Nhập

nguồn tin

đầu vào

Quản lý nhóm tin

Thu thập

nội

nội dungchi tiếtnhững bàiliền quan

Cấu hìnhcho tiếntrình tựđộng táchnội dung

Quản lýtin tức

Trang 36

2.2.2 Biểu đồ luồng dữ liệu

+ Biểu đồ luồng dữ liệu mức khung cảnh (mức 0):

Hình 2.2 Biều đồ luồng dữ liệu mức khung cảnh

Qua biểu đồ mức khung cảnh ta thấy: User gửi yêu cầu đến quản lý,Admin là người trực tiếp quản lý trang Web sẽ xử lý yêu cầu đó và cấp phép

có hoặc không đối với User

+ Biểu đồ luồng dữ liệu mức đỉnh (mức 1):

Kho dữ liệu

Hình 2.3 Biểu đồ luồng dữ liệu mức đỉnh

+ Biểu đồ luồng dữ liệu mức dưới đỉnh (mức 2)

Yêu cầu

WebsiteKết quả

User

Yêu cầu thu thập tinYêu cầu bóc tin

Admin

Ngày đăng: 25/02/2019, 09:43

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Phạm Hữu Khang (2010), Lập Trình Web Bằng PHP5.3 Và Cơ Sở Dữ Liệu MySQL 5.1 tập1, tập 2, Nhà xuất bản Phương Đông Sách, tạp chí
Tiêu đề: Lập Trình Web Bằng PHP5.3 Và Cơ Sở DữLiệu MySQL 5.1 tập1, tập 2
Tác giả: Phạm Hữu Khang
Nhà XB: Nhà xuất bản Phương Đông
Năm: 2010
[2]. Nguyễn Trường Sinh (chủ biên) (2008), Sử dụng PHP&amp;MySQL thiết kế Web động, Nhà xuất bản Thống Kê Sách, tạp chí
Tiêu đề: Sử dụng PHP&MySQL thiết kếWeb động
Tác giả: Nguyễn Trường Sinh (chủ biên)
Nhà XB: Nhà xuất bản Thống Kê
Năm: 2008
[3]. A.Z. Broder, M. Najork, and J. L. Wiener (2003), E±cient URL Caching for World Wide Web Crawling pp.679-689, in Proc. WWW Sách, tạp chí
Tiêu đề: E±cient URL Cachingfor World Wide Web Crawling pp.679-689
Tác giả: A.Z. Broder, M. Najork, and J. L. Wiener
Năm: 2003
[4]. M. Burner (1997), Crawling Towards Eternity: Building an Archive of the World Wide Web, Web Techniques Magazine Sách, tạp chí
Tiêu đề: Crawling Towards Eternity: Building an Archive of theWorld Wide Web
Tác giả: M. Burner
Năm: 1997
[5]. J. Edwards, K. McCurley, and J. Tomlin (2001), An Adaptive Model for OptimizingPerformance of an Incremental Web Crawler pp.106-11,in Proc. WWW Sách, tạp chí
Tiêu đề: An Adaptive Model for OptimizingPerformance of an Incremental Web Crawler pp.106-11
Tác giả: J. Edwards, K. McCurley, and J. Tomlin
Năm: 2001

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w