新聞自動提取系統(tǒng)畢業(yè)論文_第1頁
新聞自動提取系統(tǒng)畢業(yè)論文_第2頁
新聞自動提取系統(tǒng)畢業(yè)論文_第3頁
新聞自動提取系統(tǒng)畢業(yè)論文_第4頁
新聞自動提取系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、新聞自動提取系統(tǒng)是伴隨internet的發(fā)展而出現(xiàn)的,它實現(xiàn)了既讓用戶享受 到internet的新聞服務(wù),又提高了企業(yè)或公司的網(wǎng)絡(luò)安全性和資源利用效率的雙 重功能。系統(tǒng)用delphi自動地從internet上將網(wǎng)上新聞用二級文本分析技術(shù)提取出來 并存儲進(jìn)數(shù)據(jù)庫,然后再用asp.net通過訪問sql server數(shù)據(jù)庫將新聞發(fā)布,供 局域網(wǎng)內(nèi)的用戶瀏覽和查詢。系統(tǒng)具冇自動性、經(jīng)濟(jì)安全、易改變性和開發(fā)工具新的特點。新聞的提取、 數(shù)據(jù)庫更新及網(wǎng)頁內(nèi)容的更新全部是自動實現(xiàn)的,不需要人工干預(yù),這就大大節(jié) 省了人力資源;系統(tǒng)只有一臺主機(jī)與internet相連,提高了安全性,也節(jié)約了費 用;系統(tǒng)采用模塊式編

2、程方法,當(dāng)某部分改動時只需改寫少量代碼就能保證系統(tǒng) 重新正確運行;系統(tǒng)用下一代windows系統(tǒng)工具asp.net開發(fā),所以冇很強(qiáng)的沿 用性。關(guān)鍵詞:新聞提?。籲gws; intemet; n級網(wǎng)頁abstractthe automatic news extract system is born with the development of internet. it implements two functions at the same time, one is to let users share internet news service, the other is to improv

3、e the enterprise or company's network security and resource efficiency.the system uses two-level text analysis to extract news from internet then store them to database automatically, after that use asp.net as developing tools to access the database and distribute the news to local area network

4、for users to explore and query information that they need.the features of news extract system are automatism, security and price, flexibility, new developing tool. the main feature of the system is news extract, database access and web refresh are automatic implemented, it's no need to intervene

5、 by man, so much more labor is saved; in the whole system there is only one mainframe is connected to internet, the security is improved, the expense is less as well; the system takes module programming coded method, when some part needs to be changed, rewrite several lines of code can make the syst

6、em function correctly as before; the last part of the system is developed by asp.net 、 which is called ngws(next generation windows system),so it can be used for a long time.keyword: news extract; next generation windows system;internet ; n-level web第1章 新聞自動提取系統(tǒng)概述11系統(tǒng)功能和組成11.2系統(tǒng)的特點及技術(shù)創(chuàng)新2第2章開發(fā)工具介紹32.

7、1 delphi6.0 簡介32.2 sql server 簡介52.3新一代網(wǎng)頁開發(fā)工具asp.net8第3章需求分析123構(gòu)建新聞自動捉取系統(tǒng)的必要性和功能123.2新聞自動提取的可行性12第4章系統(tǒng)總體設(shè)計14第5章詳細(xì)設(shè)計175技術(shù)難點與解決方案175.2 delphi新聞捉取185.3 delphi數(shù)據(jù)庫訪問部分25第6章系統(tǒng)測試29結(jié)束語30參考文獻(xiàn)31致謝32第1章新聞自動提取系統(tǒng)概述1.1系統(tǒng)功能和組成1丄1系統(tǒng)簡介新聞白動提取是指一臺計算機(jī)作為主機(jī)將internet ±的新聞h動提取到本機(jī), 然后以網(wǎng)頁的形式發(fā)布出去,供局域網(wǎng)內(nèi)的其它用戶訪問瀏覽。而新聞口動提取 系

8、統(tǒng)就是運行在主機(jī)上完成上述功能的一套軟件。112系統(tǒng)功能(1) 本系統(tǒng)可捉供多個網(wǎng)站的新聞,用戶能選擇自己喜愛的網(wǎng)站;(2) 系統(tǒng)已將新聞分成教育、體育、財經(jīng)、娛樂等多類,用戶可依興趣選擇 類別,系統(tǒng)還提供了簡單的模糊查詢的功能;(3) 本系統(tǒng)的新聞隨著internet ±網(wǎng)站的更新而變化,也可將新聞存儲起來, 形成一個可查詢的信息庫;(4) 本系統(tǒng)可擴(kuò)展為圖片、mp3、mtv等自動提取系統(tǒng)。1.1.3系統(tǒng)組成系統(tǒng)前端開發(fā)工具為delphi和asp.net,后臺數(shù)據(jù)庫為sql server,因此,系 統(tǒng)也由三大部分組成:sql server部分,delphi部分,asp.net部分。

9、(1) sql server 部分這部分要創(chuàng)建數(shù)拯庫、數(shù)拯表、表結(jié)構(gòu)及對數(shù)據(jù)庫的安全性和數(shù)拯進(jìn)行管理, 也包括建立用戶登錄、數(shù)據(jù)冗余等控制。(2) delphi 部分這部分用delphi定時訪問internet的各大網(wǎng)站,將其上的新聞提取出來,并 依靠delphi的數(shù)據(jù)庫訪問機(jī)制按新聞類別存入和應(yīng)的數(shù)據(jù)表,這部分還有對數(shù)據(jù) 庫進(jìn)行清空、查看等功能。asp.net部分這部分主要將數(shù)據(jù)庫中的新聞發(fā)布出來,并實現(xiàn)按關(guān)鍵字對新聞內(nèi)容的簡單 查詢,實際還實現(xiàn)了添加、刪除、排序等功能。12系統(tǒng)的特點及技術(shù)創(chuàng)新1.2.1系統(tǒng)特點(1) 整個系統(tǒng)完全是自動執(zhí)行的,包括新聞提取、數(shù)拯庫更新、網(wǎng)頁內(nèi)容的 更新,這

10、就使網(wǎng)絡(luò)管理員從繁重的人工下載中解脫出來;(2) 系統(tǒng)具有良好的擴(kuò)展性,它可擴(kuò)展為圖片、mp3、mtv等許多口動提取 系統(tǒng);(3) 在數(shù)據(jù)庫設(shè)計時和數(shù)據(jù)插入時考慮到了數(shù)據(jù)冗余的控制。(4) 由于系統(tǒng)用到的主要編程工具是delphi和asp.net,所以系統(tǒng)有很好的網(wǎng) 絡(luò)性能。122系統(tǒng)創(chuàng)新(1) 整個新聞提取過程完全靠程序?qū)崿F(xiàn),而且?guī)戾膬?nèi)容隨各大網(wǎng)站新聞內(nèi) 容的變化而自動刷新,刷新的間隔在最初設(shè)定,不需要人工干預(yù),這是系統(tǒng)最突 出的特點;(2) 在用delphi提取新聞內(nèi)容吋,從理論上不但可以提取出各大類主頁屮所 有二級新聞的內(nèi)容,而且經(jīng)改進(jìn)后可獲取多級新聞內(nèi)容,這是在理論上的重大突 破;(

11、3) 提取經(jīng)濟(jì)、娛樂、體育等類新聞的標(biāo)題可直接從二級頁的網(wǎng)頁標(biāo)題提取, 大大化簡了對標(biāo)題的提取,也更直觀;(4) 系統(tǒng)對每類新聞都有一個備份表用于存儲所有提取過的新聞,這樣用戶 不但可以選擇看最近的新聞,也可看歷史上的新聞;(5) 系統(tǒng)提供了讓用戶根據(jù)自己的興趣按關(guān)鍵字選擇想要的新聞,即模糊搜 索功能。第2章開發(fā)工具介紹2. 1 delphi6. 0 簡介2.1.1 delphi的基本功能簡介delphi是當(dāng)前最強(qiáng)大,最靈活的基于windows的可視化應(yīng)用程序開發(fā)工具。 它將可視化技術(shù)與object pascal語言完美結(jié)合,具有良好的數(shù)據(jù)庫訪問能力,是 一個非常強(qiáng)大的應(yīng)用程序開發(fā)組件的集合,

12、被喻為“第四代編程語言”。delphi 6.0 是borland公司繼delphi 5.0后的又一力作。delphi的功能十分強(qiáng)大,這里只分類介紹如門(1) 靈活的 vcl(visual component libarary)組件vcl是delphi最重要的組成部分。在設(shè)計時添/刪除組件、自定義組件、使 用面向?qū)ο蠹夹g(shù)繼樂其它組件的行為,這些能力都是決定delphi效率的關(guān)鍵因素。 在許多場合,編寫vcl組件都采用固定的面向?qū)ο蟮某绦蛟O(shè)計方法。(2) 強(qiáng)大的數(shù)據(jù)庫功能delphi貝有所有工貝中最靈活的數(shù)據(jù)庫結(jié)構(gòu),對大多數(shù)基于數(shù)據(jù)庫平臺的應(yīng) 用程序來說,bde(borland database

13、engineer)的功能已足夠強(qiáng)大,程序設(shè)計人員 無需直接同數(shù)據(jù)庫文件打交道,就可以操作和處理各個數(shù)據(jù)庫文件。(3) 完善的網(wǎng)絡(luò)編程功能作為一種流行的編程語言,優(yōu)良的網(wǎng)絡(luò)性能是十分重要的。delphi提供了很 多與網(wǎng)絡(luò)的接口,使用起來非常方便,而且delphi程序可在windows和unix操 作系統(tǒng)下運行,無需改變代碼,所以說delphi有強(qiáng)大的網(wǎng)絡(luò)功能是當(dāng)z無愧的。2.1.2 delphi 6.0的新特性(1) delphi 6.0通過完全基于soap的網(wǎng)絡(luò)服務(wù)和xml數(shù)據(jù)交換支持,從根 本上簡化了在互聯(lián)網(wǎng)上構(gòu)筑下一代電子商務(wù)的程序。xml及網(wǎng)絡(luò)服務(wù)技術(shù)和 delphi 6.0的無縫融合為

14、工業(yè)標(biāo)準(zhǔn)化的網(wǎng)絡(luò)服務(wù)和互聯(lián)網(wǎng)上b2b、b2c和p2p的 集成帶來了唯一的快速開發(fā)工具。(2) websnap使得delphi能夠直接融入當(dāng)今的網(wǎng)站開發(fā)團(tuán)隊。通過websnap, delphi程序能夠無縫地集成到網(wǎng)站和使用現(xiàn)今流行的html開發(fā)環(huán)境(如 dreamweaver、frontpage> vbscript 和 javascript)的網(wǎng)站開發(fā)團(tuán)隊屮。(3) 編寫單一源代碼的windows/linux程序。delphi 6.0和kylix兼容,使用 交叉平臺的clx控件庫和可視化設(shè)計器編寫的高性能、可移動式的windows程 序能在linux上用borland kylix輕松編譯。

15、(4) 支持最新的windows 2000/me和office 2000圖形用戶接口。通過 actionbands actionmanagers和shell controls可以輕松制作最流行的、符合微軟 ui最新趨勢的動態(tài)用戶界面。通過讓最終用戶完全定義他們門己的ui使用來 排除復(fù)雜的用戶界面。2.1.3 delphi 的 ide 環(huán)境當(dāng)我們打開delphi 6.0的時候,首先進(jìn)入的就是它的集成開發(fā)環(huán)境(integrated development environment, ide),我們編寫、運行和調(diào)試程序就是在這個環(huán)境 屮完成的。在delphi 6.0中,集成開發(fā)環(huán)境由碟碼編輯器、調(diào)試器

16、、工具欄、圖像編輯 器和數(shù)據(jù)庫工具組成,所冇這些以集成的方式進(jìn)行操作。(1) 主菜單主菜單是位于屏幕最頂端的主控窗口的菜單欄,通過它幾乎可以訪問所冇的 delphi的捉供工具。(2) 工具條工具條捉供了一組快捷的按鈕來讓用戶能迅速訪問到delphi 6.0屮常用功能。(3) 控件模板位于主控窗口工具條右邊的就是控件模板,通常我們也將它們稱為delphi的 組件。delphi 6.0將很多功能相近的控件放在同一個控件組中。按一般情況來說, 只需要雙擊一個控件就可以把它放到應(yīng)用程序的窗體屮去。使用delphi進(jìn)行編程 大部分情況就是使用各種控件,只要掌握了基本控件的使用方法,你就可以很方 便地編制

17、出一般的應(yīng)用程序了。(4) 窗體設(shè)計器當(dāng)你第一次運行delphi 6.0的時候,在整個界面的中間可以看到一個標(biāo)題用 程序的外觀進(jìn)行設(shè)置,它是整個delphi應(yīng)用程序設(shè)計的基礎(chǔ)。在delphi 6.0的窗 體設(shè)計器是所見即所得的,你可以在窗體上任意放置自己所需要的可視或者是不 可視控件。(5) 代碼編輯器位于窗體設(shè)計器的下方的那一塊編輯區(qū)域稱為代碼編輯器。在delphi 6.0屮, 代碼編輯器由兩部分組成,左側(cè)是一個代碼分析器,它可以讓你很方便地找到應(yīng) 用程序屮的類、各種定義的方法和變量等。右側(cè)則是用戶輸入代碼的地方,我們 從代碼編輯器窗體上的標(biāo)簽可以看到,現(xiàn)在打開的文件是unitl. pas文

18、件,每一 個編輯的文件都可以打開在一個標(biāo)簽頁小,你可以通過點擊標(biāo)簽的方法方便地在 工程的各個文件z間進(jìn)行切換。代碼編輯器是程序員編程的一個環(huán)境,幾乎所有的代碼都在這個地方進(jìn)行輸 入、運行和調(diào)試odelphi 6.0提供的代碼編輯器除了具有一般文字編輯器的功能外, 還有很多體貼的設(shè)計。例如當(dāng)你在輸入代碼時,delphi會口動分析你的代碼,以 各種不同的顏色和狀態(tài)來區(qū)別不同的代碼、函數(shù)和關(guān)鍵字。例如,在默認(rèn)的設(shè)置 小,關(guān)鍵字是黑體的,數(shù)字是藍(lán)色的,而注釋的段落則是斜體的,這樣能方便程 序員整理和組織口己的代碼。另外值得一提的是,在delphi中,代碼編輯器有一種很神奇的功能,稱為 code ins

19、ight,當(dāng)輸入delphi所能識別的對彖名稱并打上一個“ ”的時候,delphi 會口動分析這個對象所具有的屈性和方法,把它直接放在“”后面的下拉列表 中去,這樣你可以直接在下拉列表框中選擇所需要的東西就行了。同時,當(dāng)你在 寫程序需要調(diào)用一個過程或方法的時候,只要輸入了該方法的名稱,然后加一個 “(”,delphi就可以智能地將所需要的參數(shù)依次列出;在應(yīng)用程序調(diào)試的時候, 如杲將光標(biāo)放在某個變量或表達(dá)式上停留一段時間,delphi就會口動列出表達(dá)式 的值。(6)對象觀察器在delphi 6.0整個界面的最右邊,有一個稱為“object inspector”的窗體,它 就是對彖觀察器了。一個對

20、象觀察器由兩個標(biāo)簽頁組成:properties (屬性)和event (事件), 當(dāng)我們在窗體設(shè)計器中選中一個控件,它所對應(yīng)的屬性和事件就會列在這個對象 觀察器中。以上介紹了 delphi的ide編程環(huán)境,如杲要了解其性能,還需動手實際編寫 程序。2. 2 sql server 簡介2.2.1 sql server的文件系統(tǒng)和特點microsoft公司的sql server是一個完全的數(shù)據(jù)庫管理系統(tǒng)。sql server是一 種使用傳統(tǒng)的transact-sql語言,基于客戶機(jī)/服務(wù)器,并在兩者間傳送請求 和答復(fù)的關(guān)系型數(shù)拯庫管理系統(tǒng)。sql server使用客戶機(jī)/服務(wù)器體系結(jié)構(gòu)將所 有的工

21、作分解為客戶機(jī)任務(wù)和服務(wù)器任務(wù),由兩者分別完成。在sql server 2000中擻據(jù)庫文件可以分為三種類型:主文件、輔助文件、日 志文件,擴(kuò)展名分別為:.mdf, .ndf,df。每個數(shù)據(jù)庫中都有一個主文件,主文 件是一個數(shù)據(jù)庫的起點。輔助文件的個數(shù)沒有限制,可以有一個或者多個輔助文 件,也可以沒有輔助文件。這主要是看數(shù)據(jù)庫本身的大小和復(fù)雜情況。數(shù)據(jù)庫的事務(wù)日志文件記錄了數(shù)據(jù)庫中所進(jìn)行的一切改變。它在恢復(fù)數(shù)據(jù)庫 時非常重要,它保存了所有當(dāng)系統(tǒng)出錯時恢復(fù)數(shù)據(jù)庫時所需要的信息。缺省情況 下,事務(wù)口志記錄的尺寸為數(shù)據(jù)文件的1/4,每一個數(shù)據(jù)庫必須有一個日志,而 且,事務(wù)日志必須與數(shù)據(jù)存在不同的文件

22、中。在sql server2000 h1,使用文件組來管理具有相似特征的-組文件。一個主 文件或者輔助文件只能屈于一個文件組,日志文件是獨立的,不屈于任何文件組。 而一個文件組也只屈于一個數(shù)據(jù)庫。在sql server 2000 | ,對數(shù)據(jù)庫的一切操作,都可以通過兩種方式進(jìn)行:一 種是通過圖形化的工m: enterprise manager,一種是通過使用transact-sql語言, 直接進(jìn)行對數(shù)據(jù)庫的操作。前一種方式,比較直觀,操作簡單。后一種方式,比 較復(fù)雜,需要對transact-sql語言語法特別熟悉。sql server2000是microsoft公司t* 2000年8月推出的最

23、新數(shù)據(jù)庫引擎,商 務(wù)數(shù)據(jù)倉庫的數(shù)據(jù)庫解決方案,它具有以下幾個特點:(1) 熟悉的界面作為大型電了 sql server 2000與sql server 7.0就界面而言并沒有太大差 別,相信許多曾經(jīng)使用過sql server7.0的讀者見到2000時會有一種十分熟悉的 感覺,這方便了用戶從7.0版本到2000的升級:(2) 更加強(qiáng)大的數(shù)據(jù)引擎sqlserver2000擁有增強(qiáng)的數(shù)據(jù)引擎,高級的管理方式,這樣就大大降低了 檢索的開銷。此外sql server 2000支持xml, http,并與web相結(jié)合,使其 功能更加強(qiáng)大。(3) 與 windows 2000更好的結(jié)合(4) ms sql

24、server 2000相對其他數(shù)據(jù)庫產(chǎn)品,更好地利用了 win2000的優(yōu) 勢。此外sql server 2000還支持高達(dá)32個cpu, 64gb。2.2.2數(shù)據(jù)庫管理系統(tǒng)的基本概念(1) 數(shù)據(jù)庫的安全性在計算機(jī)系統(tǒng)屮,安全措施一般是分級設(shè)置的,在數(shù)據(jù)庫系統(tǒng)屮,對數(shù)據(jù)的 存取權(quán)限一般支持自主存取控制和強(qiáng)制存取控制兩種機(jī)制,以對數(shù)據(jù)提供保護(hù)。 在自主存取控制屮,用戶對不同的數(shù)據(jù)對彖冇不同的存取權(quán)限,不同的用戶對同 一對彖也冇不同的權(quán)限,用戶還可將自己的權(quán)限傳授給其他用戶。而強(qiáng)制存取控 制小,每一個數(shù)據(jù)對彖被標(biāo)以一定的密級,每個用戶也被授予某密級的許可證, 因此只有數(shù)據(jù)對象的密級和許可證上標(biāo)明的

25、密級相匹配時用戶才能存取數(shù)據(jù)對 象。通過為不同的用戶定義不同的數(shù)據(jù)視圖,就可以向不同的用戶展示不同的數(shù) 據(jù),這樣實現(xiàn)了一定程度的數(shù)據(jù)隱藏,因而能對數(shù)據(jù)提供保護(hù)。此外,可以利用 數(shù)據(jù)庫系統(tǒng)提供的審計功能將所有用戶對數(shù)據(jù)的操作口動記錄下來,存入電了記 錄簿,必要時可用它跟蹤某些用戶對數(shù)據(jù)庫的操作。最后常用的安全措施還有數(shù) 據(jù)加密技術(shù),即將數(shù)據(jù)通過一定方式變換成密文保存在數(shù)據(jù)庫小,必要時再變換 成原始數(shù)據(jù)。若非法用戶不知道解密的方法,即使讀取了數(shù)據(jù)也不明白其含義。(2) 數(shù)據(jù)的完整性數(shù)據(jù)庫的完整性指數(shù)據(jù)的正確性和兼容性。數(shù)據(jù)庫管理系統(tǒng)一般提供下而三 種手段支持?jǐn)?shù)據(jù)的完整性。定義功能向用戶提供定義完整

26、性約束條件的機(jī)制。檢查功能 檢查用戶的操作是否違背了完整性約束條件。錯誤處理功能 在檢查到用戶的操作違背了完整性約束條件后,就采取相 應(yīng)的應(yīng)對措施。(3) 數(shù)據(jù)庫恢復(fù)雖然數(shù)據(jù)庫系統(tǒng)是非??煽康?,但是有時也會遭到各種破壞活動,包括口然 的和人為的原因。例如口然災(zāi)害、硬件故障、軟件故障和人為破壞等。如何將數(shù) 據(jù)庫恢復(fù)到一個已知的正確狀態(tài)就是數(shù)據(jù)庫的恢復(fù)。數(shù)據(jù)庫的恢復(fù)經(jīng)常涉及到下 面兩個問題。如何建立數(shù)據(jù)備份如何利用所建立的數(shù)據(jù)備份恢復(fù)數(shù)據(jù)庫建立數(shù)據(jù)備份常用的技術(shù)是數(shù)據(jù)轉(zhuǎn)儲和覆蓋文件,一般同時使用這兩種方 法。數(shù)據(jù)轉(zhuǎn)儲就是管理人員定期地將數(shù)據(jù)備份到磁帶或磁盤上以建立數(shù)據(jù)備份的 過程。利用數(shù)據(jù)備份可將

27、數(shù)據(jù)庫恢復(fù)到建立備份時的狀態(tài)。若要將數(shù)據(jù)庫恢復(fù)到 當(dāng)前狀態(tài),就需要將備份后所有更新數(shù)據(jù)庫的事務(wù)運行一遍,因此需要用口志記 錄運行過的事務(wù)。(4) 并發(fā)控制在數(shù)據(jù)庫系統(tǒng)中,通常有很多事務(wù)同時運行,同時對數(shù)據(jù)進(jìn)行存取和更新, 如不加以控制,就會產(chǎn)生下面導(dǎo)致數(shù)據(jù)一致性錯誤的三個問題。丟失修改 事務(wù)a和事務(wù)b同時操作同一數(shù)據(jù)庫并修改,a先將結(jié)果寫 入,接著e也將結(jié)果寫入,這樣事務(wù)a對數(shù)據(jù)所作的修改就會丟失。不能重讀 事務(wù)a先對數(shù)據(jù)庫作了修改,而事務(wù)b接著對數(shù)據(jù)庫作了更新 或修改,或刪除或增加某一紀(jì)錄,這樣當(dāng)事務(wù)a第二次讀的時候,發(fā)現(xiàn)和第一次 讀的結(jié)果不同。臟讀 事務(wù)a修改了某一數(shù)據(jù),并將其寫回磁盤,事

28、務(wù)b讀了該數(shù)據(jù)并 使用了該數(shù)據(jù),結(jié)杲因某種原因被取消,它所修改的數(shù)據(jù)回到了以前的狀態(tài),那 么事務(wù)b所讀得數(shù)據(jù)就是不正確的,也稱為讀臟數(shù)據(jù)。解決這三個問題的主要方法z加鎖。鎖有兩種類型,即排他鎖和共享鎖。如 事務(wù)a對數(shù)據(jù)對象加上了排他鎖,則該數(shù)據(jù)對象將由它獨占地使用,不能被其他 事務(wù)讀取、修改和加鎖,直到事務(wù)a釋放自己加的排他鎖。若某事務(wù)a對數(shù)據(jù)對 象加上了共享鎖,則它只能讀這個數(shù)據(jù)對象而不能修改它,其他事務(wù)也可以在該 數(shù)據(jù)對象上加共享鎖,而不能加排他鎖。在對數(shù)據(jù)對彖加鎖時,需要遵循一定的規(guī)則,這些規(guī)則稱為加鎖協(xié)議,常用 的是三級封鎖協(xié)議,現(xiàn)介紹如下。一級封鎖協(xié)議事務(wù)在修改數(shù)據(jù)2前必須先對其加排

29、他鎖,事務(wù)結(jié)束時釋放 所加的鎖,若需要讀操作,則不用加鎖。這樣就解決了修改丟失問題,但是解決 不了不能重讀和臟讀。二級封鎖協(xié)議在一級封鎖協(xié)議的基礎(chǔ)上,加上事務(wù)在讀取數(shù)據(jù)2前必須先 對其加共享鎖,讀完后可釋放共享鎖。二級封鎖協(xié)議可以解決讀臟數(shù)據(jù)的問題, 但不能解決不能重讀問題??梢孕蜗蟮卣f明為:事務(wù)a在對某數(shù)據(jù)對象修改z而,對其加上排他鎖,事務(wù)b要讀取該數(shù)據(jù)對 彖,需要給其加共享鎖,但因為有事務(wù)a所加的排他鎖,這樣b只能等待事務(wù)a 由于某種原因被撤消,釋放了所加的排他鎖,而且數(shù)據(jù)對象也恢復(fù)到原來狀態(tài)。 事務(wù)e對數(shù)據(jù)對象加上了共享鎖,讀得正確的數(shù)值。三級封鎖協(xié)議在二級封鎖協(xié)議的基礎(chǔ)上,加上事務(wù)在讀

30、取數(shù)據(jù)z前必須先 對其加共享鎖,直到事務(wù)結(jié)束才釋放共享鎖??梢孕蜗蟮卣f明如下:事務(wù)a在對某數(shù)據(jù)對象讀取ziiij,對其加上共享鎖,事務(wù)b想要修改該數(shù)據(jù) 對彖,需要給其加排他鎖,但因為有事務(wù)a所加的共享鎖,這樣b只能等待,不 能加上排他鎖。事務(wù)a再讀一次數(shù)據(jù)對象,所得的當(dāng)然是正確的結(jié)果事務(wù)a完成, 釋放所加的共享鎖,這時事務(wù)b才獲得使用數(shù)據(jù)對象的機(jī)會。2. 3新一代網(wǎng)頁開發(fā)工具asp.net2.3.1 asp.net 概述asp.net是microsoft公司動態(tài)服務(wù)頁面(active server page)的最新版本, 它是該公詞提供的基于服務(wù)器的強(qiáng)大的技術(shù),用于為萬維網(wǎng)站點或企業(yè)的內(nèi)部網(wǎng)

31、創(chuàng)建動態(tài)的、交互式的html貝面。asp.net作為asp與.net相結(jié)合的產(chǎn)物, 是以前齊版本asp的一大飛躍。asp.net作為新一代的網(wǎng)絡(luò)開發(fā)工具,不僅與asp以前的版本相兼容,而且 增加了許多新的功能。總結(jié)起來有以下幾個方面:(1) 多語言支持。asp.net支持四種編程語言,用戶可根據(jù)自己特長和實際 需耍進(jìn)行選擇,甚至可以用這些語言的組合來編程。(2) 兼容性。asp.net和asp完全兼容,對于以前的asp文件,仍可在us 環(huán)境下運行oasp.net文件以新的擴(kuò)展名出現(xiàn)。即.aspx,可以清楚的區(qū)分新老文件。(3) 分離程序代碼和網(wǎng)頁內(nèi)容。在asp中網(wǎng)頁顯示的html標(biāo)記和程序代碼

32、 混在一起,給人以朵亂無章的感覺。在asp.net中引入了全新的html編程模式, 包括全新的服務(wù)器端控件,表單的事件驅(qū)動、數(shù)據(jù)綁定等,將程序代碼與接口清 楚地分開。2.3.2 asp.net 詳析asp.net在開發(fā)效率、性能、可靠性和部署上的結(jié)合都是前所未有的,下面詳 細(xì)介紹。(1) 開發(fā)效率asp.net幫你在極短的時間內(nèi)開發(fā)出真止的大量的網(wǎng)頁應(yīng)用程序。簡便的編程模型asp.net顯著簡化了構(gòu)建真正的大規(guī)模的網(wǎng)頁應(yīng)用程序。asp.net服務(wù)管理使 與html類型相似的編程變得比經(jīng)典asp編程所用的代碼大大減少。顯示數(shù)據(jù), 用戶輸入的冇效性驗證和上傳文件都驚人的容易。最重耍的是,asp.n

33、et網(wǎng)頁可在 所冇的瀏覽器屮運行包括 netscape, opera, aol, and internet explorer。靈活的語言選擇asp.net使你最大效率的發(fā)揮你當(dāng)前編程語言的技巧。不像經(jīng)典的asp,僅 支持解釋后的vbscript和javascript, asp.net支持的.net語言超過25種(包 括支持vb.net, c#和jscript.net的混合而不需要其它的工具)。在語言的 選擇上 asp.net為您捉供了空前的靈活性。強(qiáng)大的工具支持您可以用任何一種文本編輯器展示asp.net的強(qiáng)大功能,即使是記事本也行 但visual studio.net捉高了網(wǎng)頁的基本可視化類

34、型的開發(fā)效率。現(xiàn)在你可你所熟 悉的拖一放一雙擊技術(shù)可視化的設(shè)計網(wǎng)頁窗體,并享受完全快速的編碼。豐富的類框架結(jié)構(gòu)應(yīng)用程序的特色通常很難實現(xiàn),或需要第三方控件,但現(xiàn)在只用幾行代碼引 用.net framework就能實現(xiàn)。.net framework捉供了超過4500個類,封裝了豐 富的功能,像 xml, data access, file upload, regular expressions, image generation, performance monitoring and logging, transactions, message queuing, smtp mail 等 等。(2

35、) 改進(jìn)的性能和可測量性asp.net讓您能用相同的硬件為更多的用戶服務(wù)。編譯執(zhí)行asp.net比經(jīng)典asp更快,而不是asp的單步保存模型。然而,asp.net 編譯時沒有明確的編譯單步o asp.net將口動檢查任何變化,動態(tài)編譯需要文件, 并存儲將要用到的結(jié)杲。這樣便使執(zhí)行的速度加快,大部分經(jīng)典asp移植到 asp.net上速度提高3-5倍。高速輸出緩存asp.net輸出緩存可顯著改善程序的性能和可測量性。當(dāng)輸出緩存在一個頁小可用時,asp.net只執(zhí)行這個頁一次,并把結(jié)果存儲 在內(nèi)存的同時發(fā)送給用戶。當(dāng)另一個用戶需要同樣的網(wǎng)頁時,asp.net服務(wù)器經(jīng) 緩存將內(nèi)存中結(jié)果取來而不重新執(zhí)行

36、網(wǎng)頁輸出緩存是可配置的,可用于緩存?zhèn)€別 區(qū)或整個頁,由于避免了每個請求都訪問數(shù)據(jù)庫,輸出緩存大大改善了數(shù)據(jù)驅(qū)動 頁的性能。(3) 增強(qiáng)的可靠性asp.net確保你的應(yīng)用程序?qū)τ脩艨偸强捎玫?。磁盤漏洞、死鎖和沖突保護(hù)asp.net 口動檢測錯謀并從磁盤漏洞或死鎖中恢復(fù)出來,使應(yīng)用程序?qū)τ脩?都是可用的。假設(shè)你的應(yīng)用程序小有一個小的磁盤漏洞,并且一周后這個漏洞成 為你虛擬內(nèi)存的很重要的一部分,asp.net會檢查到這種情況,門動啟動另一個 備份的asp.net工作進(jìn)程,并把所有的新請求定向到新進(jìn)程。一旦老進(jìn)程完成 了所有的懸掛請求的處理,它就被釋放掉,同時內(nèi)存漏洞也被釋放掉。整個過程 是口動地,不

37、需要管理員的干預(yù)和任何服務(wù)的中斷,但asp.net已從錯誤中恢復(fù) 出來。(4) 布局的簡單性asp.net把你從布局服務(wù)器程序的痛苦中解脫出來?!胺墙佑|”應(yīng)用程序布局asp.net顯著簡化了應(yīng)用程序的安裝,用asp.net,你可像開發(fā)html頁 一樣對整個程序布局:只需把程序拷貝到服務(wù)器,不需要運行regsvi32注冊任何 組件,并且環(huán)境配置存儲在應(yīng)用程序的一個xml文件中。動態(tài)更新正在運行的程序asp.net可以在不重新啟動網(wǎng)頁服務(wù)器的情況下更新編譯的組件,過去經(jīng)典 com組件,開發(fā)者每次更新布局都必須重新啟動網(wǎng)頁服務(wù)器,用asp.net,你 只簡單把組件從已存在的dll (動態(tài)鏈接庫)中拷

38、貝過來asp.net將門動檢 測變化并開始使用新的代碼。方便的路徑移植為了開始使用asp.net你不需要移植已經(jīng)存在的程序,asp.net運行在iis 上與經(jīng)典asp并置在windows 2000和windows xp平臺上,已經(jīng)存在的asp程 序可db asp.dll繼續(xù)處理,而新的asp.net頁由新的asp.net引擎處理。你可 以移動整個應(yīng)用程序,也可移動單個頁,asp.net甚至允許你繼續(xù)用已經(jīng)存在的 com商業(yè)組件類。(5) 新的應(yīng)用程序模型。-xml網(wǎng)頁服務(wù)xml網(wǎng)頁服務(wù)允許應(yīng)用程序通過internet交換和共享數(shù)據(jù),而無需考慮操作 系統(tǒng)和編程語言,asp.net使xml網(wǎng)頁服務(wù)

39、更加簡單明了。任何類一調(diào)用soap client用幾行代碼就能將其轉(zhuǎn)化為xml網(wǎng)頁服務(wù)。同時,asp.net使你的應(yīng)用 程序很容易調(diào)用xml網(wǎng)頁服務(wù),不需耍任何網(wǎng)絡(luò),xml或soap知識。數(shù)據(jù)庫訪問asp.net提供了 ado和ole兩種技術(shù),其訪問數(shù)據(jù)庫的方式已經(jīng)接近一般 的而向?qū)﹀杈幊陶Z言,使用起來非常容易,而且其功能也相當(dāng)完備。第3章需求分析3.1構(gòu)建新聞自動提取系統(tǒng)的必要性和功能隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的成熟和計算機(jī)價格的變化,一場信息領(lǐng)域的劃時代革 命internet出現(xiàn)了。現(xiàn)在internet提供的服務(wù)應(yīng)有盡有,新聞、影視、圖形、圖像,不勝枚舉。但出于網(wǎng)絡(luò)安全和實際情況的考慮,一個公司或

40、企業(yè)的內(nèi)部仍 有很多人不能直接登錄到internet,但又應(yīng)該讓他們享受internet的服務(wù)。這樣網(wǎng) 絡(luò)服務(wù)的h動提取系統(tǒng)就應(yīng)運而生了,新聞h動提取系統(tǒng)不過是小試牛刀而已。系統(tǒng)需完成的功能:(1) internet上將各大商業(yè)網(wǎng)絡(luò)服務(wù)網(wǎng)站上的新聞標(biāo)題和新聞內(nèi)容完全由程序 自動提取岀來,不需要人工干預(yù);(2) 將新聞分類后放入數(shù)據(jù)庫中;(3) 以網(wǎng)頁的形式將新聞發(fā)布出來,供局域網(wǎng)中的用戶瀏覽,并可實現(xiàn)簡單的 按關(guān)鍵字查詢的功能;(4) 應(yīng)該對提取的新聞在一段時間內(nèi)刷新,同時更新數(shù)據(jù)。3. 2新聞自動提取的可行性在介紹可行性之前,先介紹兒個概念:一級網(wǎng)頁:也叫大類首頁,是從網(wǎng)站的首頁屮各類直接鏈

41、接到的網(wǎng)頁,教 育類首頁地址為: ,經(jīng)濟(jì)類首頁地址為: .多級網(wǎng)頁:從一級網(wǎng)頁直接鏈接到的網(wǎng)頁為二級網(wǎng)頁,依次可定義三級網(wǎng)頁、 四級網(wǎng)頁。大于等于三級的網(wǎng)頁,稱為多級網(wǎng)頁。二級新聞:如果新聞的內(nèi)容能 從二級網(wǎng)頁上找到,這樣的新聞稱為二級新聞。新聞的類標(biāo)志串:它用來標(biāo)志新聞的類別,也是能判斷網(wǎng)頁是否是二級網(wǎng)頁 的一個字符串。教育類新聞的標(biāo)志串是:(<sohu_cms_include:learning_article_content>)在本系統(tǒng)屮只捉取二級新聞,所用技術(shù)為二級網(wǎng)頁捉取技術(shù)。(1) 通過對五類上百個新聞網(wǎng)頁進(jìn)行統(tǒng)計表明:搜狐上新聞內(nèi)容網(wǎng)頁的布局格 式同類的極其相近,而各類

42、間區(qū)別也不大。(2) 對一級網(wǎng)頁的分析表明,該頁屮的新聞都是通過超鏈接鏈接到對應(yīng)二類新聞頁的。而超聯(lián)接的提取可通過反復(fù)截取的方法獲得。(3)每類新聞在其新聞網(wǎng)頁(二級網(wǎng)頁)中都含有相應(yīng)的標(biāo)志(一般在新聞標(biāo) 題前,也是新聞開始的標(biāo)志),而且二級網(wǎng)頁中新聞內(nèi)容的開始和結(jié)束也有標(biāo)志, 教育類的開始標(biāo)志為</sohuadcodexp>,結(jié)束標(biāo)志為</pxp> </p> (有時p是 大寫的)。新聞提取的基木思想和過程是:先定位到各類新聞的主頁,再獲得其對應(yīng) 的文本出,取出其小的超鏈接,再把超鏈接小的地址取出來,如果該地址對應(yīng)網(wǎng) 頁含有類新聞標(biāo)志,則提取新聞內(nèi)容和標(biāo)題。

43、新聞內(nèi)容和標(biāo)題的提取方法:新聞 內(nèi)容和標(biāo)題在二級網(wǎng)頁對應(yīng)的文木中都有相應(yīng)的起始標(biāo)志,可從開始截取到結(jié)尾 的部分即得由于delphi |提供了對字符串的操作函數(shù),所以整個新聞提取的 過程從技術(shù)上是完全可行的。整個提取在timei控件中完成,就實現(xiàn)了門動提取 的功能。利用asp.net的ado數(shù)據(jù)庫訪問技術(shù),就可將數(shù)據(jù)庫中的新聞發(fā)布出來。系統(tǒng)的數(shù)據(jù)流圖如圖3所示.internet1delphi文本網(wǎng)絡(luò)文件接口internet網(wǎng)頁1.2文本a分析 模塊新聞 網(wǎng)頁sql server 新聞庫1.3asp. net模塊數(shù)據(jù)庫 文件圖3.1新聞自動提取系統(tǒng)數(shù)據(jù)流圖第4章系統(tǒng)總體設(shè)計從功能和所用的開發(fā)工具可

44、將整個系統(tǒng)分為三個部分:sql server部分、 delphi部分、asp.net部分。而delphi部分又可以分成網(wǎng)絡(luò)訪問及新聞提取、數(shù) 據(jù)庫管理兩個子模塊。(1) sql server 部分這部分主要包括數(shù)據(jù)庫設(shè)計:由于各類新聞除了類別外,主要由新聞標(biāo)題和新聞內(nèi)容組成,故各類新聞均 采用下表結(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲。整個建庫、建表通過企業(yè)管理器完成,同時對數(shù)據(jù) 庫建立登錄,然后再odbc(open database connection)中為數(shù)據(jù)庫建立別名,以 便在程序中訪問。數(shù)據(jù)庫中存儲新聞表的結(jié)構(gòu)如表41所示.表4-1數(shù)據(jù)庫中表的結(jié)構(gòu)字段名no (編號)title (標(biāo)題)content (

45、內(nèi)容)station (網(wǎng)站)類型decimalvarchar(loo)varchar(80()0)char(50)(2) delphi 部分delphi中網(wǎng)絡(luò)訪問及新聞提取子模塊網(wǎng)絡(luò)訪問部分:通過對控件欄中fastnet頁屮的nmhttp控件編程,用字符串變量返回網(wǎng)頁 對應(yīng)的文本串。新聞捉取部分這部分需要對網(wǎng)頁進(jìn)行全面細(xì)致的分析,準(zhǔn)確提取出網(wǎng)頁中的超鏈接,然后 從超鏈接串中提取出地址,在判斷該頁是否是二級網(wǎng)頁,是則提取新聞標(biāo)題和內(nèi) 容,否則進(jìn)入下一次捉取,直到文本屮無超鏈接為止。delphi中數(shù)據(jù)庫管理子模塊建立數(shù)據(jù)庫別名,并對odbc進(jìn)行配置,以便在delphi和asp.net中訪問 數(shù)據(jù)

46、庫;檢查記錄是否存在,如果不存在則插入之,否則放棄操作;能對表進(jìn)行清空操作,以便刷新數(shù)據(jù)庫中的數(shù)據(jù);能對表屮記錄進(jìn)行修改和刪除;在刷新數(shù)據(jù)庫時,將數(shù)據(jù)庫中的數(shù)據(jù)無兀余存儲于信息庫中。(3) asp.net 部分該程序作為服務(wù)器端程序,將數(shù)據(jù)庫中的數(shù)據(jù)以網(wǎng)頁的形式發(fā)布出來,共 用戶對各類信息瀏覽;用戶可根據(jù)自己的興趣愛好,動態(tài)的選擇想要瀏覽的新聞,也就是簡單的 搜索引擎功能;方便的網(wǎng)頁鏈接,用戶在瀏覽一類新聞時可直接鏈接到其它類新聞。這部分由登錄、主頁和五個鏈接頁組成,五個鏈接頁與主頁z間均由超鏈接 聯(lián)系。五個鏈接頁的組成大體相同,每個頁均能實現(xiàn)添加,刪除,排序,查詢的 功能,而新聞內(nèi)容的顯示用

47、datagrid控件綁定數(shù)據(jù)庫實現(xiàn)。a的總體布局如圖4.1所示.notitlecontentstation12003#nba總決賽即將開始新澤西網(wǎng)隊與馬剌隊一決高下sohu. com2意大利網(wǎng)球公開賽開某世界g將紛紛亮相163. com333序號:旋:內(nèi)容:號:rrrr-11 xlj文并(e)確絹(0査看收藏(a) ia(d 粘助(u)口3后退 * 0宙為01*素自收蔵英3視體$過rn多地址(b) ijhttp:/ocaho$t/d$p net/ado/sgq/ pe. aspx瀏覽、査詢、添加.刪除ijj-1圖4. 1網(wǎng)頁基本布局系統(tǒng)的功能模塊圖如圖4.2所示.系統(tǒng)實現(xiàn)流程為:先建立數(shù)據(jù)庫,

48、再通過delphi訪問internet提取新聞,存 儲于數(shù)據(jù)庫,再由asp.net將數(shù)據(jù)庫中信息發(fā)布出來?;趇nternet的新聞自動提取系統(tǒng)delphi 的 internet 訪問及新聞 提取模塊sql server數(shù)據(jù)庫管理系統(tǒng)delphi 數(shù)據(jù)庫 管理 模塊asp.net 數(shù)據(jù)庫 訪問 模塊網(wǎng) 文 新 頁 本 聞 獲 分 提 取 析 取建建數(shù)數(shù)據(jù)據(jù)庫表表插刪清入除空數(shù)數(shù)據(jù)據(jù)新新聞聞瀏搜覽索圖4. 2浙聞門動提取系統(tǒng)模塊圖第5章詳細(xì)設(shè)計5.1技術(shù)難點與解決方案如前所述,整個系統(tǒng)i sql server部分、delphi部分、asp.net部分組成, 在齊部分屮遇到的技術(shù)問題及實現(xiàn)方案將分

49、述由于齊大網(wǎng)站的網(wǎng)頁組織結(jié)構(gòu) 相近,故以提取搜狐上的新聞為例闡明。5.1.1 sql server中的技術(shù)問題及實現(xiàn)方案(1) 表結(jié)構(gòu)的選取構(gòu)建表的結(jié)構(gòu)冇兩種方法:一表法和多表法。這兩種方法均能滿足系統(tǒng)對數(shù) 據(jù)庫的操作要求,但結(jié)構(gòu)略冇差異:一表結(jié)構(gòu):所有類新聞放在一個表屮。字段設(shè)置:類別,類內(nèi)標(biāo)號,新聞標(biāo)題,新聞內(nèi)容,來源網(wǎng)站。多表結(jié)構(gòu):每類新聞用一個表存儲。本系統(tǒng)有以下五類:教育類,休育類,經(jīng)濟(jì)類,娛樂類,出國類。每類的字 段設(shè)置相同,如下所示:標(biāo)號,新聞標(biāo)題,新聞內(nèi)容,來源網(wǎng)站。本系統(tǒng)釆用多表結(jié)構(gòu),因為多表結(jié)構(gòu)較一表結(jié)構(gòu)可減少數(shù)據(jù)冗余。(2) 建立數(shù)據(jù)庫連接在連接時冇四種方法:用bde連接

50、用odbc連接用ado連接用ole連接本系統(tǒng)首先用odbc建立連結(jié),在delphi屮用bde訪問數(shù)據(jù)庫,在asp.net 屮用ado連接訪問數(shù)據(jù)庫;(3) 數(shù)據(jù)庫屮的冗余控制在記錄插入前檢查其是否存在,不存在則插入。5.1.2 delphi中的技術(shù)問題及實現(xiàn)方案(1)技術(shù)難點1:如何對提取出的新聞進(jìn)行分類.解決方案:搜狐網(wǎng)本身己將新聞分成教育、出國、健康、財經(jīng)、體育等 類,在提取時直接定位到各類的主頁中,然后在各頁中提取出新聞自然存入 和應(yīng)的表中。(2) 技術(shù)難點2:如何用delphi訪問網(wǎng)頁的內(nèi)容.解決方案:用delphi6控件欄的fastnet頁中的nmhttp控件,經(jīng)編程可返 回整個網(wǎng)頁

51、的基于html的文木串。(3) 技術(shù)難點3:如何從文本串小提取岀新聞標(biāo)題.解決方案:共三種。直接從各大類主頁中獲?。粡亩壘W(wǎng)頁新聞的標(biāo)題獲得;從二級網(wǎng)頁的窗體的標(biāo)題獲得。注:體育、娛樂、出國、經(jīng)濟(jì)類新聞均可通過以上三種方式獲取新聞標(biāo)題, 但教育類新聞只能通過前兩種途徑獲得標(biāo)題,因為教育類新聞窗體的標(biāo)題為 “sohu教育頻道”。(4) 技術(shù)難點4:如何從各大類主頁開始提取出新聞內(nèi)容。(以教育類為例) 解決方案:大致分四步:從教育類主頁中的超鏈接中提取出地址吊,并對地址吊進(jìn)行標(biāo)準(zhǔn)化;對nmhttp控件進(jìn)行編程,獲得地址吊所對應(yīng)的網(wǎng)頁文木吊;判斷該網(wǎng)頁小是否含有教育類新聞的標(biāo)志串 (<sohu

52、_cms_include:learning_article_content>),如果含有,則從該二級頁中提取出 新聞內(nèi)容,否則提取下一個超鏈接,直到教育類網(wǎng)頁文木吊的結(jié)尾;將新聞內(nèi)容小的換行符、注釋符及其它多余字符去掉。5.1.3 asp. net技術(shù)問題(1) 技術(shù)難點1:如何將數(shù)據(jù)庫綁定到datagrid控件.解決方案:首先sqlconnection建立數(shù)據(jù)庫連結(jié),再在page_load事件中用 sqlcommand添加sql語句。最后打開連接,對datagrid控件進(jìn)行數(shù)據(jù)綁定。(2) 技術(shù)難點2:記錄的添加、刪除和排序.解決方案:先建立數(shù)據(jù)庫連接,然后在對應(yīng)的按鈕的單擊事件中設(shè)置

53、 sqlcommand的sql語句,有參變量的對參變量賦值,再對datagrid控件進(jìn)行數(shù) 據(jù)綁定。5. 2 delphi新聞提取521整體布局和大體流程提取部分總體由一個工程組成,這個工程由五個窗體組成,每個窗體對應(yīng)一 類新聞的提取。由于教育類新聞標(biāo)題與其它類不同,但新聞內(nèi)容的提取卻相同,故只將標(biāo)題 的提取分別實現(xiàn)z。整個提取過程在timer控件內(nèi)完成。窗體布局如圖5.1所示, 而新聞提取的流程圖如圖5.2所示。圖5.1 窗體布局窗體布局詮釋如下:標(biāo)號,標(biāo)題,內(nèi)容和網(wǎng)站分別用來顯示提取到新聞的各個屬性,查詢按鈕可 實現(xiàn)在delphi ip查詢新聞內(nèi)容,dbgrid控件用來顯示所有的新聞。也可

54、在標(biāo)號, 標(biāo)題,內(nèi)容和網(wǎng)站手動輸入內(nèi)容,按添加按鈕將其寫入數(shù)據(jù)庫中。hl怡圖5.2捍取新聞的整個流稈圖注:rest 用來實現(xiàn)循環(huán)時對文本出賦初值,它的值為出s提取出超鏈接后 的剩余串。流程圖中的多數(shù)功能的詳細(xì)實現(xiàn)在下面敘述。522新聞提取子模塊的實現(xiàn)為了清楚的解釋各模塊的程序,先說明英屮最重要的幾個函數(shù):pos(substring:string;s:string):integer;說明:函數(shù)返回子串substring在主串s中的位置,如果主串中不包含子串, 返回0copy(s:string;m:integer;n:integer):string;說明:函數(shù)返回在串s中截取從m開始的n個字符組成

55、的串。如果截取的長 度比最大可截取長度大,則從開始位置截取到串結(jié)尾。(1) 從一級網(wǎng)頁的文本串屮截取超鏈接超鏈接有兩種形式:分別以va/a和vax/a作為開始和結(jié)束標(biāo)志。程序 屮通過判斷va和va的位置來定位超鏈接的開始。下而是定位超鏈接開始的代碼,可參照圖5.3理解。10:=pos(h0,s); ll:=pos(hl,s); if 11 <10 thenhstart:=llelsehstart:=10;定位到va定位到va如果11比10小,說明串s屮將找到的超鏈接/以a/a為起始標(biāo)志找到超連接的開始5. 3提取超鏈接的流程圖再截取從va或va到文本末 尾cuto用同樣的方法定位到 超鏈

56、接的末尾最后截取出超 鏈接串用以上方法可以截取 出網(wǎng)頁文本屮所有的超鏈接 串以下從超鏈接屮捉取地址 串并對其標(biāo)準(zhǔn)化(2)從超鏈接小截取地址出并將其標(biāo)準(zhǔn)化超鏈接中地址吊的開始標(biāo)志為hwf=,地址串的結(jié)尾有兩種形式:空格 和 下面是兩個例了:<a href=h target="_blanku>美指使</a><a href="從超鏈接提取的粗略地址有幾種形式: ,http:/www.n (此種形式為絕對地址) *http:/www.' '" '(此種形式為相對地址) http:/www.其中第5種定為標(biāo)準(zhǔn)形式,也就是能直接寫在url (統(tǒng)一資源定位),地址的 標(biāo)準(zhǔn)化就是如果有前四種地址,將其轉(zhuǎn)化為對應(yīng)的標(biāo)準(zhǔn)地址。上面已經(jīng)截取出超鏈接后,以下敘述從超鏈接中取出地址吊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論