❶ 如何利用c語言分析網頁
要用程序抓取網頁自動保存到本地,就要會用socket編程,或者學習使用libcurl庫,不做網頁抓取的時候,這些知識依然非常有用。而且,不同的網頁,內容不同,規律可能也不同。
網頁分析,本質是字元串處理和分析。所以需要掌握正則表達式和字元串處理相關的函數,以及函數庫,比如tidy庫等。正則表達式是用來匹配一類字元串的,方便找規律,也方便處理。而且,正則表達式跟語言無關,什麼語言都能用得到。標准C庫中沒有正則表達式相關的函數,一般來說C中使用兩種正則表達式庫,一為POSIX C正則庫,二為perl正則庫PCRE。相比較而言PCRE要強大些,POSIX C正則庫就足夠使用。
常式,將下載下來的網頁源代碼處理成沒有標簽的純文字文本:
#include<tidy.h>
#include<buffio.h>
#include<stdio.h>
#include<errno.h>
intmain(intargc,char**argv)
{
constchar*input="<title>Foo</title><p>Foo!";
TidyBufferoutput={0};
TidyBuffererrbuf={0};
intrc=-1;
Boolok;
TidyDoctdoc=tidyCreate();//Initialize"document"
printf("Tidying: %s ",input);
ok=tidyOptSetBool(tdoc,TidyXhtmlOut,yes);//ConverttoXHTML
if(ok)
rc=tidySetErrorBuffer(tdoc,&errbuf);//Capturediagnostics
if(rc>=0)
rc=tidyParseString(tdoc,input);//Parsetheinput
if(rc>=0)
rc=tidyCleanAndRepair(tdoc);//Tidyitup!
if(rc>=0)
rc=tidyRunDiagnostics(tdoc);//Kvetch
if(rc>1)//Iferror,forceoutput.
rc=(tidyOptSetBool(tdoc,TidyForceOutput,yes)?rc:-1);
if(rc>=0)
rc=tidySaveBuffer(tdoc,&output);//PrettyPrint
if(rc>=0)
{
if(rc>0)
printf(" Diagnostics: %s",errbuf.bp);
printf(" Andhereistheresult: %s",output.bp);
}
else
printf("Asevereerror(%d)occurred. ",rc);
tidyBufFree(&output);
tidyBufFree(&errbuf);
tidyRelease(tdoc);
returnrc;
}
❷ 黃河水環境信息管理系統的步驟
需求分析是系統設計的關鍵,是系統開發之前必要的技術環節,也是軟體開發人員與系統運行操作人員在方案設計時期的技術溝通。針對項目的實際需求,在項目需求分析階段,系統設計人員要十分了解項目解決的實際問題。
黃河水環境信息管理系統的建設,主要為流域水體監測管理服務。根據水環境監測信息管理運行方式特點,系統對監測資料進行數據管理、統計分析、信息查詢、數據查詢、水環境質量評價、水環境質量信息發布、水環境質量整體評述等,為上級主管部門提供決策依據。此外,黃河流域水環境信息管理系統還應留有介面,為以後省界水體監測、自動監測、流域水量調度等網上運行,提供必要的系統環境支持。
根據系統總體需求,系統的支持環境應分為兩個主要方面:一是系統的硬體支持環境,二是系統的軟體支持環境。硬體支持環境是滿足系統運行的必要的計算機網路系統:包括網路布線、計算機網路配置、外設、網路結構及通信協議等;軟體支持環境是為滿足系統功能要求的基本軟體:包括軟體開發平台和應用軟體等方面。從黃河水環境信息管理系統的基本要求及未來發展趨勢來看,整個系統的建立應滿足這兩個方面的環境需求。 按照黃河流域水資源保護的統一規劃,並根據工作的輕重緩急,分步實施。做到既有總體目標,又有階段目標,邊建設邊發揮效益。系統建設要考慮安全性、可靠性、穩定性和可擴展性。
1. 網路設計的基本原則
本著先進、開放、結構合理、可擴展性強、安全可靠的原則,黃河水環境信息管理系統計算機網路的設計主要考慮:網路拓撲結構、網路協議選擇、數據傳輸速率、設備選型及數據安全保障等幾個方面,同時網路管理、遠程接入、網路間互聯及Intranet/ Internet技術應用方式等也需要認真考慮。
2. 軟體設計的基本原則
要求系統具有完善的資料庫結構、方便靈活的操作界面、面向對象的技術開發、多樣的輸出效果以及系統的安全性、實用性和兼容性。系統軟體設計採用當今主流開發軟體,實施系統的前端開發和後端開發。 1. 網路拓撲結構
擬建的網路系統為典型的企業廣域網(Intranet),分區域網(近程連結)和廣域網(遠程連接)兩部分,區域網選用 10/100Mbps交換式快速乙太網技術並以光導纖維電纜和雙絞線布線組網。網路結構採用星型拓撲結構。整個網路採用VPN(Virtual Private Network,虛擬專用網)技術以DDN(Digital Data Network,數字數據網)或微波專線方式進行數據傳輸。沿黃7個基層監測站各自組成自己的區域網絡(模式與局中心區域網絡相同),並租用電信部門或水利通信網的傳輸線路與網路中心連接。為了保證特殊情況下的正常連通,系統採用遠程撥號作為備用連接方式。網路結構拓撲簡圖如圖1所示。
圖中1#中心交換機為具有第三層交換功能的100/10Mbps自適應交換機,放置於網路中心機房內。中心交換機附加光纖模塊,引出3條多模光纖分別與2#、3#交換機及黃委網路交換機相連;2#交換機放置於黃河水資源保護科研所,連接該資源域的PDC和BDC及客戶機;3#交換機放置於黃河流域水環境監測中心並連接該資源域的PDC和BDC及客戶機。1#交換機與2#交換機之間、1#交換機與3#交換機之間採用多摸光纖連接,形成中心區域網的主幹,傳輸速率為100Mbps。各資源域通過五類非屏蔽雙絞線(UTP-5)以100Mbps與交換機相連。沿黃基層監測站分別組成自己的區域網(10Mbps)並採用DDN方式或通過微波通信網、公眾信息網以遠程撥號方式連入網路中心。
2. 網路操作系統
網路操作系統選用Windows Server2000中文版,添加Backoffice Server包括IIS、Microsoft Exchange Server、Proxy Server、Frontpage等組件。客戶端操作系統選用Windows2000 Professional、 Windows NT workstation4.0、Windows98等版本。採用KILL for NT/2000Server網路版、Norton2000、KV300、RAV等防病毒軟體對計算機病毒進行聯合防治。選用Microsoft公司的System Management Server 2.0和Cisco Works2000進行網路管理。鑒於數據的安全性,起用數據備份系統Legato NetWorker,使數據備份到存儲設備。 1. 開發工具選擇
軟體開發工具對軟體的開發至關重要。目前,各類開發工具軟體種類繁多,程序語言也多種多樣,結合系統需求,擬選用Windows98或Windows2000作為系統平台,Sybase作為資料庫語言,PowerBuilder作為前端開發工具,Visual Basic、Visual C++作為開發語言,Mapinfo prosever作為動態顯示和GIS的支持,根據需要選配工具軟體、防病毒軟體、多媒體處理軟體等。開發手段主要為計算機開發技術、多媒體製作技術、水質監測管理技術、水力學技術、系統動力學技術等。
2. 子系統設計
系統由六大子系統組成,即資料庫子系統、流域概況檢索子系統、圖形顯示子系統、黃河水體監測子系統、模型庫子系統、決策支持子系統。
⑴ 資料庫設計 資料庫是整個系統的核心,資料庫的設計不僅要考慮庫結構的合理性,還要考慮其安全性。資料庫內容主要分四個子庫: 水質資料庫;法規、條例資料庫;入河排污口資料庫;地理信息資料庫。
水質資料庫包括斷面信息表、地表水質數據表、底質數據表、地下水數據表、評價標准數據表、飲用水質數據表、簡報(包括月報、年報)數據表、水質評價結果數據表、飲用水源情況(取水口位置、供水廠名稱、取水量、時間等)。
法規、條例資料庫內容包括有關水環境的政策、法規及相關標准,如環境保護法、水法、水污染防治法、地面水環境質量標准、漁業用水標准、飲用水標准、農田灌溉用水標准、污水排放標准等。
入河排污口資料庫包括:排污口信息表、污染物監測表、污染物調查表、社會經濟情況表、取水口信息表等;有社會經濟情況數據:各相關城市的位置、人口、工業產值、農業產值、用水量、排污量、排污周期、污染物處理情況等。
地理信息資料庫包括主要區段地形圖、行政區劃圖、人口分布圖、礦產資源分布圖、工農業產值分布圖、污染源分布圖、水質狀況圖、水系、水質站網分布圖、預測結果圖等信息。
資料庫的運行模式包括兩部分,一是內部運行模式:完成轄區水環境監測資料的入庫、處理、信息發布、遠程資料接收等工作。二是外部訪問模式:非技術人員網上瀏覽。因此資料庫的運行模式,內部運行按C/S結構設計,外部瀏覽按B/S結構設計。
用戶許可權設計是為了維護資料庫數據的安全性、完整性,解決數據操作的並發控制問題,必須為使用信息系統的用戶設定對數據的操作許可權。系統規劃了五種數據操作許可權:系統管理員、流域資料庫管理員、監測站資料庫管理員、特殊用戶和一般用戶。系統管理員擁有最高許可權,除了擁有對數據的所有操作許可權(錄入、修改、刪除、查詢)外,還可以增加系統用戶,即安排用戶的數據操作許可權;流域資料庫管理員主要負責流域數據的上下游對照檢查、表面合理性審查,並可修改用戶許可權;監測站資料庫管理員主要負責對本站數據的錄入、修改和刪除,可以變更資料庫中的數據記錄,有權修改本站的密碼,不經授權不得調閱其它站資料;特殊用戶可對數據和評價結果進行查詢;一般用戶只能限於數據評價結果和簡報的查詢。據此,即可對不同部門的用戶進行數據操作許可權的管理。進入水質資料庫後,輸入用戶名和密碼,即可進行不同許可權的操作。
索引文件設計,對於一般的資料庫來說,數據的檢索方式採用的是順序檢索,即給出查詢條件後,從資料庫中的第一條記錄開始進行檢索,直到查到滿足條件的記錄為止。這種檢索方式在資料庫記錄不多的情況下是可行的,但是當資料庫記錄很多時,這種檢索方式所花費的時間就比較長,用戶需要等待很長時間才能得到系統的反應,系統運行效率不高。為了提高檢索效率,可以建立索引,建立索引後的查找方式是折半查找法,檢索效率比順序查找法高。
⑵ 流域水環境概況檢索子系統設計 包括流域水環境歷史背景、現狀及發展趨勢分析、人文地理概貌、工農業發展狀況、生態環境評價、監測歷史、站點布設、主要干、支流域污染河段、重點城市等。採用多媒體技術進行綜合介紹,包括文字、聲音、圖形、圖像等。主要設計內容有區域自然地理概況、區域社會經濟概況、監測站網布設情況、入河排污口分布情況、水體功能現狀、近期流域的水質污染現狀等。
⑶ 圖形顯示子系統設計 圖形顯示子系統是為了擴展系統的服務功能,便於宏觀了解水體污染現狀,作用是結果顯示清晰、直觀。主要內容有:以圖形的形式反映流域內各地的人口、資源、工農業產值、污染源狀況、水質狀況。包括流域各主要區段地形圖、水系圖、監測站網布設圖、省界水體站網圖、入河排污口分布圖、水體功能區劃圖、水質數據變化圖、工農業產值圖、統計結果顯示圖、評價結果顯示圖、預測結果顯示圖、綜合分析結果圖等。主要表現形式有:根據地理信息系統生成靜態分布圖和動態顯示圖、根據變化過程生成的趨勢圖和柱狀圖、根據不同項目所佔比例而生成的餅狀圖等。
⑷ 省界水體監測子系統 省界水體監測子系統是根據省界水體監測的要求而建立的。省界水體監測子系統包括數據公證性審查、數據維護、信息查詢、數據評價和信息發布各部分。
⑸ 模型庫子系統設計 模型庫子系統包括數據的合理性檢查、質量控制措施結果檢查、區域水環境質量評價、趨勢分析、相關性分析、區域水環境預測等模型。
⑹決策支持子系統設計 本部分根據已有研究成果掛接。如流域水體功能劃分、污染物總量控制、水量調度對水質的影響等課題正在研究之中,這些研究成果提交後,本系統開發人員可根據成果要求,實現計算機模型掛接,為流域水環境決策管理服務。 黃河流域水環境信息管理系統的設計方案,充分體現出當前計算機信息管理系統的設計原則,既考慮當前的實用性,又考慮以後的可擴展性;既有一定規模,又兼顧投資效益比。在軟體設計方面,採用當今大型主流軟體,較好地解決了系統的開放性問題。黃河水環境信息管理系統的後期開發,在環境監測管理方式方法上,將利用先進的計算機技術替代落後的人工管理,縮短了數據生成周期,提高了數據利用率,有較高的社會效益和經濟效益。