❶ 如何利用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结构设计。
用户权限设计是为了维护数据库数据的安全性、完整性,解决数据操作的并发控制问题,必须为使用信息系统的用户设定对数据的操作权限。系统规划了五种数据操作权限:系统管理员、流域数据库管理员、监测站数据库管理员、特殊用户和一般用户。系统管理员拥有最高权限,除了拥有对数据的所有操作权限(录入、修改、删除、查询)外,还可以增加系统用户,即安排用户的数据操作权限;流域数据库管理员主要负责流域数据的上下游对照检查、表面合理性审查,并可修改用户权限;监测站数据库管理员主要负责对本站数据的录入、修改和删除,可以变更数据库中的数据记录,有权修改本站的密码,不经授权不得调阅其它站资料;特殊用户可对数据和评价结果进行查询;一般用户只能限于数据评价结果和简报的查询。据此,即可对不同部门的用户进行数据操作权限的管理。进入水质数据库后,输入用户名和密码,即可进行不同权限的操作。
索引文件设计,对于一般的数据库来说,数据的检索方式采用的是顺序检索,即给出查询条件后,从数据库中的第一条记录开始进行检索,直到查到满足条件的记录为止。这种检索方式在数据库记录不多的情况下是可行的,但是当数据库记录很多时,这种检索方式所花费的时间就比较长,用户需要等待很长时间才能得到系统的反应,系统运行效率不高。为了提高检索效率,可以建立索引,建立索引后的查找方式是折半查找法,检索效率比顺序查找法高。
⑵ 流域水环境概况检索子系统设计 包括流域水环境历史背景、现状及发展趋势分析、人文地理概貌、工农业发展状况、生态环境评价、监测历史、站点布设、主要干、支流域污染河段、重点城市等。采用多媒体技术进行综合介绍,包括文字、声音、图形、图像等。主要设计内容有区域自然地理概况、区域社会经济概况、监测站网布设情况、入河排污口分布情况、水体功能现状、近期流域的水质污染现状等。
⑶ 图形显示子系统设计 图形显示子系统是为了扩展系统的服务功能,便于宏观了解水体污染现状,作用是结果显示清晰、直观。主要内容有:以图形的形式反映流域内各地的人口、资源、工农业产值、污染源状况、水质状况。包括流域各主要区段地形图、水系图、监测站网布设图、省界水体站网图、入河排污口分布图、水体功能区划图、水质数据变化图、工农业产值图、统计结果显示图、评价结果显示图、预测结果显示图、综合分析结果图等。主要表现形式有:根据地理信息系统生成静态分布图和动态显示图、根据变化过程生成的趋势图和柱状图、根据不同项目所占比例而生成的饼状图等。
⑷ 省界水体监测子系统 省界水体监测子系统是根据省界水体监测的要求而建立的。省界水体监测子系统包括数据公证性审查、数据维护、信息查询、数据评价和信息发布各部分。
⑸ 模型库子系统设计 模型库子系统包括数据的合理性检查、质量控制措施结果检查、区域水环境质量评价、趋势分析、相关性分析、区域水环境预测等模型。
⑹决策支持子系统设计 本部分根据已有研究成果挂接。如流域水体功能划分、污染物总量控制、水量调度对水质的影响等课题正在研究之中,这些研究成果提交后,本系统开发人员可根据成果要求,实现计算机模型挂接,为流域水环境决策管理服务。 黄河流域水环境信息管理系统的设计方案,充分体现出当前计算机信息管理系统的设计原则,既考虑当前的实用性,又考虑以后的可扩展性;既有一定规模,又兼顾投资效益比。在软件设计方面,采用当今大型主流软件,较好地解决了系统的开放性问题。黄河水环境信息管理系统的后期开发,在环境监测管理方式方法上,将利用先进的计算机技术替代落后的人工管理,缩短了数据生成周期,提高了数据利用率,有较高的社会效益和经济效益。