Tải bản đầy đủ (.doc) (29 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (577.41 KB, 29 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA ĐIỆN TỬ - VIỄN THÔNG
*************
BÁO CÁO ĐỒ ÁN THIẾT KẾ I
GIÁO VIÊN HƯỚNG DẪN : Th.s Nguyễn Quang Minh
ĐỀ TÀI : Chương trình Crawler Web
Sinh viên thực hiện: Ngô Sơn Tùng
Lớp: Điện Tử 3-K53
MSSV: 20083008
1
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.
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ật
lý…. 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ột


cung 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ạy
trên nền Windows được gọi là Web Crawler .
4
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 :
/>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ạn
cấ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 web đa luồng thu hồi trong một khung ứng dụng đơn giản
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ác
liê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 :

Hình 1 : chế độ cơ bản.

Chế độ nâng cao:
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ương
trì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à . 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.
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:
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ương
trình để thu thập dữ liệu từ 5 website khác nhau đó là :







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”
11
Hình 7: Qúa trình thu thập
12
Hình 8 và 9: Kết quả nhận được.
3.2 Trang “vnexpress.net”
13
3.2. Trang “24h”

14
15
3.4.Trang “baomoi”
16
3.5.Trang “bongdaso”
17
Chương 4: Giải trình về code chương trình

• Class ActionEditor
Mở rộng từ Panel.
Gồm các hàm : ActionEditor, getAction, setAction.
• Class ActionFeatureArgs
Mở rộng từ Panel.
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,
setScript, setTextOnly.
• Class ActionFeatureChoice
Mở rộng từ FeatureChoice
Gồm các hàm :
ActionFeatureChoice, getAction, getArgs, setAction.
• Class ConcatOptions
Mở rộng từ PopupDialog.
Gồm các hàm :
ConcatOptions, handleEvent, writeBack
• Class Browser
Bổ sung LinkViewListener.
Gồm các hàm :
Browser, show, viewLink.
18
• Class ClassifierListEditor
Mở rộng từ Panel.
Gồm các hàm :
ClassifierListEditor, getCrawler, handleEvent, newClassifier,
removeSelectedClassifier, scan, setCrawler.
• Class ConcatAction
Bổ sung Action, CrawlListener.
Gồm các hàm :
ConcatAction, cleared, connected, disconnected, equals, getFilename,
getUseBrowser, paused, same, showit, started, stopped, timedOut,
visit.
• Class ContentPredicate

Bổ sung LinkPredicate, PagePredicate.
Gồm các hàm :
ContentPredicate, connected, disconnected, equals, getOverHTML,
getPattern, shouldActOn, shouldVisit.
• Class Context
Gồm các hàm :
getApplet, getAppletContext, getBrowser, getScriptInterpreter,
internalSetApplet, isApplet, isApplication, setApplet.
• Class CrawlerEditor
Mở rộng từ Panel.
Gồm các hàm :
CrawlerEditor, configureDepth, configureDepthFirst,
configureDomain, configureType, configureURL, getCrawler,
handleEvent, setCrawler.
• Class DownloadParametersEditor
Mở rộng từ Panel.
19
Gồm các hàm :
DownloadParametersEditor, getDownloadParameters,
setDownloadParameters.
• Class DualPredicate
Bổ sung LinkPredicate, PagePredicate.
Gồm các hàm :
DualPredicate, connected, disconnected, equals,
getNegativePredicate, getPositivePredicate, shouldActOn,
shouldVisit.
• Class ExtractAction
Bổ sung Action, CrawlListener.
Gồm các hàm :
ExtractAction, cleared, connected, disconnected, equals, getFilename,

getPattern, getTextOnly, getUseBrowser, makeTableHeader, paused,
same, showit, started, stopped, timedOut, visit.
• Class FeatureChoice
Mở rộng từ Choice.
Gồm các hàm :
FeatureChoice, flipArgs, getArgs, handleEvent, select.
• Class GraphLayout
Mở rộng Canvas và bổ sung Runnable, ImageObserver.
Gồm các hàm :
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,
removeNode, repaint, resetAlgorithm, run, scaleGraph, setAlgorithm,
20
setAutomaticLayout, setEdgeColor, setFont, setGraph, setInterval,
setIterations, setNodeCharge, setNodeColor, setRestLength,
setSpringConstant, setThreshold, setTipColor, showControlPanel,
start, stop, update.
• Class HighlightAction
Bổ sung Action.
Gồm các hàm :
HighlightAction, connected, disconnected, equals, getColor, getIcon,
getScale, same, visit.
• Class LabelPredicate
Bổ sung LinkPredicate, PagePredicate.

Gồm các hàm :
LabelPredicate, connected, disconnected, equals, getLabels,
getOrTerms, shouldActOn, shouldVisit.
• Class LinkPredicateEditor
Mở rộng Panel.
Gồm các hàm :
LinkFeatureArgs, getHTMLNegPattern, getHTMLPattern, getLabels,
getOrTerms, getScript, getTextNegPattern, getTextPattern,
getURLNegPattern, getURLPattern, setHTMLNegPattern,
setHTMLPattern, setLabels, setOrTerms, setScript,
setTextNegPattern, setTextPattern, setURLNegPattern,
setURLPattern.
• Class LinkFeatureChoice
Mở rộng từ FeatureChoice.
Gồm các hàm :
LinkFeatureChoice, getArgs, getLinkPredicate, makeSingleOrDual,
setLinkPredicate.
• Class LinkPredicateEditor
Mở rộng từ Panel.
21
Gồm các hàm :
LinkPredicateEditor, getLinkPredicate, setLinkPredicate.
• Class LinkViewEvent
Gồm các hàm :
LinkViewEvent, getLink, getSource.
• Class LinkViewListener
• Class MirrorAction bổ sung Action, CrawlListener
Gồm các hàm :
MirrorAction, cleared, connected, disconnected, equals, getDirectory,
getUseBrowser, paused, same, showit, started, stopped, timedOut,

visit.
• Class Netscape
Mở rộng từ Browser và bổ sung ScriptInterpreter.
Gồm các hàm :
Netscape, apply, eval, get, getLanguage, getScriptInterpreter, init,
lambda, makeApply, set, show.
• Class Netscape4Access
Mở rộng Access.
Gồm các hàm :
isLocalURL, makeDir, makeTemporaryFile, openConnection,
readFile, readWriteFile, writeFile.
• Class PagePredicateEditor
Mở rộng Panel.
Gồm các hàm :
PagePredicateEditor, getPagePredicate, setPagePredicate.
• Class PageFeatureArgs
22
Mở rộngPanel.
Gồm các hàm :
PageFeatureArgs, getHTMLNegPattern, getHTMLPattern, getLabels,
getOrTerms, getScript, getTextNegPattern, getTextPattern,
getTitleNegPattern, getTitlePattern, getURLNegPattern,
getURLPattern, setHTMLNegPattern, setHTMLPattern, setLabels,
setOrTerms, setScript, setTextNegPattern, setTextPattern,
setTitleNegPattern, setTitlePattern, setURLNegPattern,
setURLPattern.
• Class PageFeatureChoice
Mở rộng FeatureChoice.
Gồm các hàm :
PageFeatureChoice, getArgs, getPagePredicate, makeSingleOrDual,

setPagePredicate.
• Class RenderedEdge
Mở rộng Edge và bổ sung Tipped.
Gồm các hàm :
RenderedEdge, getTip.
• Class RenderedNode
Mở rộng Node và bổ sung Tipped.
Gồm các hàm :
RenderedNode, getTip.
• Class Script
Bổ sung Action, LinkPredicate,PagePredicate.
Gồm các hàm :
Script, connected, disconnected, equals, getScript, shouldActOn,
shouldVisit, toBool, visit.
• Class ScriptException
Mở rộng Exception.
23
• Class ScriptInterpreter
Gồm các hàm :
apply, eval, get, getLanguage, lambda, set.
• Class SimpleCrawlerEditor
Mở rộng CrawlerEditor
Gồm các hàm :
SimpleCrawlerEditor, getCrawler, setCrawler.
• Class Statistics
Mở rộng Panel và bổ sung CrawlListener
Gồm các hàm :
Statistics, clear, cleared, createOffscreenArea, drawField, drawFields,
formatPagesPerSec, formatTime, handleEvent, layout, measureField,
measureFields, minimumSize, monitor, paint, paused, preferredSize,

run, start, started, stopped, stop, timedOut, update.
• Class Tipped
• Class TitlePredicate bổ sung PagePredicate
Gồm các hàm :
TitlePredicate, connected, disconnected, equals, getPattern,
shouldActOn.
• Class URLPredicate
Bổ sung LinkPredicate, PagePredicate
Gồm các hàm :
URLPredicate , connected, disconnected, equals, getPattern,
shouldActOn, shouldVisit.
• Class WebEdge
Mở rộng RenderedEdge
24
Gồm các hàm :
WebEdge, getTip.
• Class WebGraph
Mở rộng GraphLayout và bổ sung CrawlListener, LinkListener
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.
• Class WebNode
Mở rộng RenderedNode
Gồm các hàm :
WebNode, getTip

• Class WebOutline
Mở rộng TreeView và bổ sung CrawlListener, LinkListener
Gồm các hàm :
WebOutline, add, addLinkViewListener, clear, cleared, crawled,
findNode, getIcon, fireEvent, getSelectedLink, handleEvent, monitor,
paused, reFilter, reRender, removeLinkViewListener, setErrorIcon,
setIcon, setLinkFilter, setLinkIcon, setNodeRendering, setPageIcon,
setRetrievingIcon, shouldDisplay, showControlPanel, started,
stopped, timedOut, update, updateClosure.
• Class Workbench extends Panel implements CrawlListener.
• Class WorkbenchFrame extends ClosableFrame.
• Class WorkbenchTabPanel extends TabPanel.
25
• Class WorkbenchVizFrame extends ClosableFrame.
• Class WorkbenchVizPanel extends TabPanel.
• Class WorkbenchApplet extends Applet.
• Class WorkbenchControlPanel extends PopupDialog.
26

×