1. Trang chủ
  2. » Thể loại khác

Báo cáo Đồ án thiết kế I Crawler Web pptx

28 748 11

Đ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 28
Dung lượng 758 KB

Nội dung

Sử dụng Workbench bánh xích, bạn có thể:  Hình dung một bộ sưu tập của các trang web như là một đồ thị  Lưu các trang vào đĩa địa phương của bạn để duyệt offline  Nối các trang lại vớ

Trang 1

TR ƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI NG Đ I H C BÁCH KHOA HÀ N I ẠI HỌC BÁCH KHOA HÀ NỘI ỌC BÁCH KHOA HÀ NỘI ỘI

KHOA ĐIỆN TỬ - VIỄN THÔNG

*************

BÁO CÁO ĐỒ ÁN THIẾT KẾ I

ĐỀ TÀI : Chương trình Crawler Web

Sinh viên thực hiện: Ngô Sơn Tùng

Trang 2

Lời cảm ơn

Sau một thời gian học tập môn Project I, dưới sự hướng dẫn tận tình của thày Nguyễn Quang Minh,đến nay em đã hoàn thành Project I Đề hoàn thành được đề tài lần này, em chân thành cảm

ơn thày đã giảng dạy, hướng dẫn, truyền đạt những kiến thức và kinh nghiệm quý báu cho chúng em trong suốt học kì vừa qua Em xin chúc thầy và gia đình luôn luôn mạnh khỏe và công tác tốt

Sinh viên : Ngô Sơn Tùng.

Trang 3

Giới thiệu về đề tài

Internet đã và đang phát triển một cách mạnh mẽ Nó đã trở thành một phần không thể thiếu của mỗi một cơ quan nhà nước, công ty, trường học và thậm chí là mỗi hộ gia đình Nguyên nhân của việc Internet ngày càng phổ biến trong cuộc sống con người như vậy là do lượng thông tin phong phú đa dạng mà ta có thể tìm thấy ở trên đó Với Internet ta có thể ngồi một chỗ mà

có thể tìm được mọi thông tin cần thiết mà ta muốn biết về bất kì một lĩnh vực nào, từ văn hóa, xa hội đến những kiến thức khoa học như toán học, vậtlý… Cùng với sự phát triển mạnh mẽ của Internet thì lượng thông tin trên

đó cũng ngày càng khổng lồ Điều đó làm cho việc thu thập dữ liệu mà ta cần thiết về một vấn đề nào đó trở nên khó khăn Điều đó đòi hỏi cần có mộtcung cụ thu thập dữ liệu tự động trên Internet giúp chúng ta giải quyết vấn

đề thu thập chọn lọc thông tin cần thiết trong lượng thông tin khổng lồ có trên Internet

Đề tài Project lần này của em chính là xây dựng một công cụ thu thập

dữ liệu như vậy Nó là một cung cụ thu thập dữ liệu một cách tự động trên Internet dựa vào một URL cho sẵn và tải về máy tính những dữ liệu tìm được Chương trình của bọn em được viết bằng ngôn ngữ lập trình Java chạytrên nền Windows được gọi là Web Crawler

Trang 5

Chương I :Giới thiệu về chương trình

1.Tổng quan về chương trình

Chương trình mà chúng em xây dựng có tên là WebSphinx ( cá nhân tùy chỉnh Webcrawler) Chương trình được tham khảo từ trang :

http://www.cs.cmu.edu/~rcm/websphinx/#download

WebSPHINX là một thư viện lớp Java và môi trường phát triển

tương tác cho trình thu thập web Một trình thu thập dữ liệu web (còn được gọi là một robot nhện) là một chương trình duyệt và xử lý các trang Web tự động

WebSPHINX bao gồm hai phần: Workbench bánh xích và các thư viện lớp WebSPHINX

1.1 Crawler Workbench

Workbench Crawler là một giao diện người dùng đồ họa cho phép bạncấu hình và kiểm soát một trình thu thập web tùy biến Sử dụng Workbench (bánh xích), bạn có thể:

 Hình dung một bộ sưu tập của các trang web như là một đồ thị

 Lưu các trang vào đĩa địa phương của bạn để duyệt offline

 Nối các trang lại với nhau để xem hoặc in chúng như một tài liệu duy nhất

 Trích xuất tất cả các văn bản phù hợp với một khuôn mẫu nhất định từmột tập hợp các trang

Phát triển một trình thu thập tùy chỉnh trong Java hay Javascript xử lý các trang web tuy nhiên bạn muốn

1.2 WebSPHINX lớp thư viện

WebSPHINX lớp thư viện cung cấp hỗ trợ cho trình thu thập web bằng văn bản trong Java Các lớp thư viện cung cấp một số tính năng:

Trang 6

 Một mô hình đối tượng một cách rõ ràng đại diện cho các trang và cácliên kết

 Hỗ trợ cho phân loại nội dung trang có thể tái sử dụng

 Chịu HTML phân tích cú pháp

 Hỗ trợ cho các tiêu chuẩn loại trừ robot

 Mô hình kết hợp, bao gồm các biểu thức thông thường, ký tự đại diện của Unix, và các biểu thức thẻ HTML Biểu thức thông thường được cung cấp bởi jakarta-regexp Apache thư viện biểu hiện thường xuyên

 Chuyển đổi HTML thông thường, chẳng hạn như concatenating trang,tiết kiệm các trang vào đĩa, và các liên kết đổi tên

2.Sử dụng Websphinx

Chương trình có thể làm việc ở hai chế độ đó là cơ bản và nâng cao.

Chế độ cơ bản :

Trang 7

Hình 2 : Chế độ nâng cao.

Vì kiến thức có hạn nên khi chúng em xây dựng chế độ làm việc phần nâng cao còn nhiều lỗi xảy ra, chưa thể khắc phục được, chương trình chưa thể chạy theo ý muốn Tuy nhiên, với phần làm việc ở chế độ cơ bản chươngtrình Websphinx cũng đã phần nào đáp ứng được yêu cầu của đề tài project lần này là thu thập được những Url liên quan từ Url cho trước Do đó, ở đây chúng em xin phép chỉ trình bày việc chạy chương trình ở chế độ cơ bản

Chương trình sẽ crawler các URLs liên quan bằng một URL cho trước Ví dụ ở đây là http://www.dantri.com.vn Khi crawler, chương trình

có thể thu thập các dữ liệu web theo các hướng khác nhau mà ta có thể tùy chỉnh được đó là cây con, máy chủ hoặc trang web Chương trình sẽ hiển thịkết quả thu thập dưới dạng đồ thị hoặc đường dẫn liên kết( outline) hoặc thống kê quá trình thu thập cho ta

Trang 8

Hình 4 : Chương trình đang hoạt động

Sau khi hoàn tất việc thu thập dữ liệu ta có thể lưu giữ kết quả thu được vào máy tính Ta có thê tùy chỉ thư mục mà ta lưu trữ kết quả thu được khi thu thập dữ liệu:

Trang 9

Hình 5: Lưu kết quả thu thập dữ liệu vào máy tính

Với nhưng thao tác cơ bản kể trên với chương trình chúng em đã thực hiện việc thu thập dữ liệu với những website khác nhau

3.Kết quả thu được khi sử dụng chương trình

Ở đây chúng em xin trình bày kết quả thu được sau khi chạy chươngtrình để thu thập dữ liệu từ 5 website khác nhau đó là :

Trang 10

Hình 6: Kết quả thu được

Sau đây là kết quả thu được sau khi làm việc với từng trang cụ thể

3.1 Trang “dantri”

Trang 11

Hình 7: Qúa trình thu thập

Trang 12

Hình 8 và 9: Kết quả nhận được.

3.2 Trang “vnexpress.net”

Trang 13

3.2 Trang “24h”

Trang 15

3.4.Trang “baomoi”

Trang 16

3.5.Trang “bongdaso”

Trang 17

Chương 4: Giải trình về code chương trình

Gồm các hàm : ActionFeatureArgs, browse, getColor

getConcatFilename , getExtractFilename, getExtractPattern,

getExtractUseBrowser, getIcon, getMirrorDirectory,

getMirrorUseBrowser, getScale, getScript, getTextOnly,

handleEvent, setColor, setConcatFilename, setConcatUseBrowser, setExtractFilename, setExtractPattern, setExtractUseBrowser,

setIcon, setMirrorDirectory, setMirrorUseBrowser, setScale,

Trang 18

Class ClassifierListEditor

Mở rộng từ Panel

Gồm các hàm :

ClassifierListEditor, getCrawler, handleEvent, newClassifier,

removeSelectedClassifier, scan, setCrawler

getApplet, getAppletContext, getBrowser, getScriptInterpreter,

internalSetApplet, isApplet, isApplication, setApplet

Class CrawlerEditor

Trang 19

DualPredicate, connected, disconnected, equals,

getNegativePredicate, getPositivePredicate, shouldActOn,

GraphLayout, addEdge, addNode, changedGraph, clear, click,

createOffscreenArea, drag, drawArrowToBox, drop, finalize,

getAlgorithm, getAutomaticLayout, getEdgeColor, getFontMetrics, getGraph, getInterval, getIterations, getNodeCharge, getNodeColor, getQuiescent, getRestLength, getRunning, getSelectedEdge,

getSelectedNode, getSpringConstant, getThreshold, getTipColor, handleEvent, imageUpdate, inLineSegment, leave, paint, pick,

placeNodeOnGraph, placeNodeOnScreen, point, removeEdge,

Trang 20

setSpringConstant, setThreshold, setTipColor, showControlPanel, start, stop, update.

LabelPredicate, connected, disconnected, equals, getLabels,

getOrTerms, shouldActOn, shouldVisit

getURLNegPattern, getURLPattern, setHTMLNegPattern,

setHTMLPattern, setLabels, setOrTerms, setScript,

setTextNegPattern, setTextPattern, setURLNegPattern,

setURLPattern

Class LinkFeatureChoice

Trang 21

isLocalURL, makeDir, makeTemporaryFile, openConnection,

readFile, readWriteFile, writeFile

Trang 22

getTitleNegPattern, getTitlePattern, getURLNegPattern,

getURLPattern, setHTMLNegPattern, setHTMLPattern, setLabels, setOrTerms, setScript, setTextNegPattern, setTextPattern,

setTitleNegPattern, setTitlePattern, setURLNegPattern,

Trang 24

Gồm các hàm :

WebGraph, add, addLinkViewListener, clear, cleared, crawled,

doubleClick, findEdge, findNode, findParent, fireEvent, getIcon, getSelectedLink, getTip, handleEvent, monitor, paused,

removeLinkViewListener, setErrorIcon, setIcon, setLinkFilter,

setLinkIcon, setNodeRendering, setPageIcon, setRetrievingIcon, shouldDisplay, showControlPanel, started, stopped, timedOut, update,updateClosure

stopped, timedOut, update, updateClosure

Class Workbench extends Panel implements CrawlListener.

Trang 25

Chương 3 : Hướng phát triển trong tương lai.

3.1 Một số vấn đề gặp phải khi sử dụng websphinx.

WebSPHINX được thiết kế cho người sử dụng web tiên tiến và các lập trình Java, những người muốn thu thập thông tin trên là một phần nhỏ của trang web (chẳng hạn như một trang web duy nhất) tự động

WebSPHINX không được thiết kế cho rất lớn thu thập như thế Công

cụ tìm kiếm thường sử dụng các trình thu thập phân phối đang chạy trên trang trại của máy tính với một ống mạng lưới chất béo và một hệ thống tập tin phân phối hoặc cơ sở dữ liệu để quản lý biên giới thu thập dữ liệu và lưu trữ dữ liệu trang WebSPHINX được dự định cho sử dụng cá nhân, để thu thập thông tin có lẽ một trăm hay một ngàn trang web

Theo mặc định, WebSPHINX giữ lại tất cả các trang và các liên kết

mà nó đã thu thập thông tin cho đến khi bạn rõ ràng các trình thu thập Điều này có thể sử dụng bộ nhớ một cách nhanh chóng, đặc biệt là nếu bạn đang thu thập nhiều hơn một vài trăm trang Dưới đây là một số thủ thuật để thay đổi giá trị mặc định và giữ cho bộ nhớ dưới sự kiểm soát (Lưu ý rằng nhữngthủ thuật chỉ áp dụng khi bạn đang viết thu thập thông tin của riêng bạn trong Java, không phải khi bạn đang sử dụng Workbench Crawler)

1 Sử dụng Page.discardContent () để ném đi ngăn chặn tham khảo nội dung của một trang khi bạn đang thực hiện với nó, để

nó có thể được khai hoang bởi những người thu gom rác

Phương pháp này bảo tồn mảng của trang web của Liên kết đi, tuy nhiên, vì vậy bạn vẫn sẽ phải thu thập dữ liệu đồ thị nếu bạncần nó

2 Ngắt kết nối các đồ thị thu thập dữ liệu hoàn toàn bằng cách phá vỡ các tài liệu tham khảo giữa các liên kết và các trang, vì vậy mà mỗi trang và liên kết đối tượng có thể được khai hoang một lần thu thập thông tin đã hoàn tất việc truy cập vào Để làmđiều này, hãy gọi page.getOrigin () SetPage (null) bất cứ khi nào bạn đang thực hiện xử lý một trang

3 Một loại sưng lên bộ nhớ gây ra do việc thực hiện các

ja-va.lang.String.substring () Gọi s.substring () không làm cho

Trang 26

của một trang web 10KB, bạn đang giữ một tham chiếu đến toàn bộ các 10KB Nếu bạn cần phải gọi chuỗi con () trên nội dung trang web và muốn để giữ cho các chuỗi xung quanh, nhưng không phải là trang ban đầu, bạn nên tạo một bản sao của chuỗi bằng cách sử dụng String mới (s.toCharArray ())

4. Nếu vẫn thất bại, và bạn đang sử dụng JDK của Sun, bạn có thể

sử dụng tùy chọn-mx (được gọi là-Xmx trong JDK gần đây) để tăng giới hạn tối đa của bộ nhớ heap

WebSPHINX sử dụng được xây dựng trong các lớp học Java URL và URLConnection để lấy các trang web Nếu bạn đang chạy Workbench bánh xích bên trong trình duyệt, điều đó có nghĩa là thu thập thông tin của bạn sử dụng proxy, xác thực, cookies, và người sử dụng đại lý của trình duyệt, vì vậy nếu bạn có thể truy cập các trang web bằng tay, sau đó bạn có thể thu thập dữ liệu Nếu bạn đang chạy thu thập thông tin của bạn từ dòng lệnh, tuynhiên, bạn sẽ phải cấu hình Java để thiết lập proxy, chứng thực của bạn, sử dụng các đại lý, và vv

3.2 Hướng phát triển.

Trong thời gian tới em sẽ nghiên cứu và phát triển để hoàn thiện hơn nữa Websphinx Cụ thể là sẽ hoàn thiện phần thu thập dữ liệu ở chế độ nângcao cũng như sẽ làm cho chương trình có thể thu thập dữ liệu ở một vùng rộng lớn hơn hiện tại

Trang 27

Kết Luận

Do lần đầu thực hiện chương trình nên còn nhiều bỡ ngỡ, cũng như thời gian không cho phép nên chương trình còn nhiều hạn chế, chưa đáp ứng được yêu cầu đề ra Tuy nhiên dưới sự hướng dẫn tận tình của th.s Nguyễn Quan Minh, chương trình phần nào cũng đạt được những kết quả nhất định Qua lần thực hiện đề tài lần này em đã tích lũy được nhiều kinh nghiệm cũng như kiến thức quý báu để trong lần thực hiện đề tài tiếp theo sẽkhông còn bỡ ngỡ và chương trình làm ra cũng đáp ứng yêu cầu tốt hơn

Một lần nữa em vô cùng cảm ơn th.s Nguyễn Quan Minh đã hướng dẫn chúng em trong suốt thời gian vừa qua

Hà Nội, ngày 7 tháng 12 năm 2011

Trang 28

Tài liệu tham khảo

Chương trình được tham khảo tại trang web :

http://www.cs.cmu.edu/~rcm/websphinx/#download

Ngày đăng: 12/08/2014, 03:20

HÌNH ẢNH LIÊN QUAN

Hình 6: Kết quả thu được - Báo cáo Đồ án thiết kế I Crawler Web pptx
Hình 6 Kết quả thu được (Trang 10)
Hình 7: Qúa trình thu thập - Báo cáo Đồ án thiết kế I Crawler Web pptx
Hình 7 Qúa trình thu thập (Trang 11)
Hình 8 và 9: Kết quả nhận được. - Báo cáo Đồ án thiết kế I Crawler Web pptx
Hình 8 và 9: Kết quả nhận được (Trang 12)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w