和
提
总 体 说 , 站 的 信 息 管理方式有三种 。 一种是通过静
,一
<meta http -equiv=refresh content=6;URL=http:// 过脚本来动态采集根据用 户请求动态生成最终网页 ,扩 展 名 www.cnill.com> 一 般 以 ASP, JSP, PHP居 多 ,。还有一是使用动态网页 术 …采 集 息 , 同步生成静态 网 页 以 供 发 布 。无 论 哪 种
提 的 URL 请求将最终在服务器端被解释为 HTML 语 言 , 并 有了这些息以后就可以开
返 给 客 户 端 。 这样就可以研 究 URL 构 成 的 律 ,
一可以直接通过 TCP 发 起的获取网站息的数据
这就是网站信息采集器的开发由
1 URL 地址的分析 以 “中 国 疾 病 网
子 。 在网站的宠物档首页随便找到一条信息及 其 URL 地 址 如
下 ,
信标题, 澳大利亚母猫诞下双头猫 健康存
URL 地 址 , http://www.cnill.com/life/pet/pet_62782.shtml
该 URL 地 址 有 两 部 分 , 固 定 部 分 , http://www.cnill.com/
life/pet/pet_, 和 可 变 部 分 ,62782, 。 可 变 部
通软件修改该信息编号就 可以实现对批量信息的
网站统信息建设划时 , 采 用 基 于 COOKIES 术 或 SES- 数据库设计2 为了提高序的易用性, 将程
库里。 简单起见, 这里使用 数据库, 相关字段定义如 所MDB 1 技术来限制非法用户的访问 ,这样的网站不在本文
范 围 内 。 该采集器是否适应 某个网站可以过以下
单 断 , 复 制 文 章 的 URL 地 址 , 然 后 单
贴 并 访 问 , 如果能看到文章内 容 , 则符合采集
同 时 , 为了防止出现 有 些网站信息编号不连
要集一个错误页的特征码 。 即当指定编号息不存
返错误提示 。 这 个 错 误 页可以让程序运
如
无 效 信 , 程将其过滤 掉 。 访 问 地 址 http://www.cnill.com/life/ pet/pet_1.shtml时误信息提示见 图 1,
码 如 下 ,
请转到首页进入
2010. 9 60
NETWORK& COMMUNICATION 网 络 与 通 信 相关据结构如下 , ;判断收到的页面是为错误页面 要 访 的 网 页 URL 地 址=url+startNum”+.”+extPage invoke InString,1,addr @szBuffer,addr lpszFlagChar 待生
mov eax,1
ret 3 序设计 .endif 程序的主要完成的是过网络下载指定的 URL 网 页 内 容 。 该功能用一个函数 _downURLToDisk 。 来完成函数的参数两invoke CreateFile,_lpsz,GENERIC_WRITE,\ 个 字 串 , 一个要下载的信息 的 URL 地 , 一 个 保 存 到 FILE_SHARE_READ,\
TRIBUTE_NORMAL,0 ; mov @hFile,eax ----------------------------------------invoke WriteFile,@hFile,addr @szBuffer,@dwSize, ; 下载指定的 URL 地网页到指定的目录下addr @dwTemp,NULL ; 用例子, ;循环读入内容,并写到文中 ; lpszURL db 'http://www.baidu.com/123.html',0 .while TRUE ; lpszFileNamedb 'c:\websites\1\123.html',0 ;将内存写入文件以供检 ; invoke _downURLToDisk,addr lpszURL,addrlpszFile invoke InternetReadFile,@hConnect,addr ; Name @szBuffer,10240,addr @dwSize ; 如果回 0,表示调用失败,即网页不存在。 .if ! eax ; 返回 1 表
.break ; 返回 2 表示成功 .endif ;
.if ! @dwSize ---------------------------------------- .break _downURLToDiskproc _lpszURL,_lpsz
.endif local @hFile,@hConnect invoke WriteFile,@hFile,addr @szBuffer,@dwSize, local @dwSize,@dwTemp
addr @dwTemp,NULL local @szBuffer[10240]:byte .endw local @dwType
invoke CloseHandle,@hFile
pushad
_ret: popad invoke InternetGetConnectedState,addr@dwType, mov eax,2 NULL
ret .if ! eax
_downURLToDisk endp ret
.endif 程首先检查网络否线 , 然 后 创 建 一 个 会 话 ,Internet invoke InternetOpen,addr proxyInfo1,INTER- 并 与 指 定 的 建 立 连 接 ,通过函读取该连接的内容 , 最 URL NET_OPEN_TYPE_PRECONFIG,\ 终入本地文件 。 NULL,NULL,0 程 序 中 用
mov @hConnect,eax BOOL InternetGetConnectedState( invoke InternetReadFile,@hConnect,addr OUT LPDWORD lpdwFlags, @szBuffer,10240,addr@dwSize IN DWORD dwReserved .if ! eax ); jmp _ret 函 数 调 用 后 , 将 返 回 值 , 通 过 判 断 值 , 即 可lpdwFlags .endif 获得当前主机连接 Internet的 状 。 因 为 只 用其判断是否处 .if ! @dwSize 于 在 线 状 态 , 因 此 , 判 断 lpdwFlags为 表 示 在
2010. 9 61 电脑编程技
实 用 第 一智 慧 密 集
); HINTERNET InternetOpen(
LPCTSTR lpszAgent, 在 中 设 置要读取的字节数 , 并 传dwNumberOfBytesToRead DWORD dwAccessType, 入接收数据的缓冲区 lpBuffe。r 调用函数完
LPCTSTR lpszProxyName, 运 行 效 果 如 图 2 所 示 。 LPCTSTR lpszProxyBypass,
DWORD dwFlags
);
使 用 指 定 代 理 服 务 器 名 称 , 注意不要使用
符
因 此 接 通过注册表定义的内容来连接网络创建
设
,3, InternetOpenUr。 l 在连接中打开
HINTERNET InternetOpenUrl(
HINTERNET hInternet,
LPCTSTR lpszUrl,
lpszHeaders, LPCTSTR
DWORD dwHeadersLength,
DWORD dwFlags,
DWORD_PTR dwContext
);
在 参 数 中定义要访问的 地 址 。lpszUrl URL
,4, InternetReadFil。e 读取 Internet文件的数据到指定缓区 4 结语 随着互网信息的日 益 膨 胀 , 从网站中广
信 , 网站信息采集器应运而 生 。 它 使 用 HTTP协 议 直 接 下
指 定 信 , 无 登 录 网 ,操 作 简 单 方 便 。不足之处是软件 在 LPVOID lpBuffer, 信息获取后的提炼 、 内容的组织上有
LPDWORD lpdwNumberOfBytesRead
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
,上 接 第 页 ,59 结语6 }//类 DbBean
环 境 , 论 了 Web程序开发的主要步 骤 ,并 针 对 “ 信 息 查 询 5 系统发布 系 统 ” 的 特 点 、技 术 难 点 进 行 了 析 , 出了系统总体设 思 系统开发过程中可以随时观运 情 况 路 和 核 心 代 码 。 ,单 击 【】, 开。F6 希望通过此论述 ,抛 砖 引 玉 , 为读者设计与开发适合 本 发成功后即可发布 服 务 器 上 。 般 情 况 , 利 Web Neat- 单 位 特 点 的 Web程时提供参 考 。 Beans6.1开发工具生成 的 Web程会自动保存在 系 统 根 目
下
Web 服 务 器 , 然 后 在 Web服务器的管理控台中单
署 … ” 按 钮 ,管理控制台可以在 NeatBeans环 境 下 启 动 ,也 可
以 在 浏 器 中 输 入 http://localhost:4848来 启 动 ,,即可将生成的 参考文献 程序文 件 “JSPApp.wa” r 署到服务器中 , 程序部署成功的界MySqlA B, MySql Server 4.1 Documentation, MySqlA B, 2007. [1] 面如图 http://www.netbeans.org. [2] 3 所 示 。 一 旦 署 成 功 , 系
h ttp://www. mastertheboss. com/e-ninterface/web s/124 -jboss - [4]
RichFaces-tutorial.html.
http://www.onjava.com/pub/a/onjava/2005/07/13/jsfuploahtml, 200d5. . [5]
The Java EE5 Tutoria , http : / / java . sun . com / javaee / 5 / docs / l[6]
tutorial/doc/index.html.
2010. 9 62
电脑编程技巧与维护
网站信息采集器
网站信息采集器
……………………………………………自…………s 实用第
阚站信息采
戚利
摘
证的网站.
提一种采用直接通过URL地址获取信息的方法. 关键:网站;信
总上说,网站的信息管理方式有三种.一种是
另种是通 网页(一般以HTM,HTML为扩展
过本来动态采集并根据用户请求动态生成最网页(
般以ASP,JSP,PHP多).还有一种是使用动态网页技术 采集信息,同步生成静态网页以供布.无论哪种方式.终 交的URL请求将最终在服务器端被解释为HTML言.并 返回给客户端.这样就
种直接通过TCP发起的获取网站信息的数据报请求. 这就是站信息采集
1URL地址的
以"病网一宠物世界"网站(http://www.cnil1.com)为例 子.在网站的宠物档页随便找到一条信息
信息
该URL地址两部分,部分(http://www.cnil1.com/ life/pet/pet一)和可变部分(62782).可变部分就是信息编号, 通过软件修改该信息编号就可以实现对批信的访问.很多 网站在统筹信息建设规划时,采用基COOKIES技术或SES. SION技术来限制非用户的访问,这样的网站不在本文讨 范围内.该是适应某个站可以通过以方法进行简 单判断:复制文章的URL地址,然后单独打开IE浏览器粘贴 并访问,如果能看到文章
同.为了防止出现有些网站信息编号不连续的
要采集个错页的特征码.即指定编号信息不在时网站 返回的错误提示.这个错误页可以让程序运行更可一些.即 如果获取到数据报存在错误页中包含的内容,则被认为是 无效信息.序
peffpet_1.shtml时的错误信息提示见图1,与之应的网页
您访
请
l201藿技0.9
<METAhttp,equiv=COntent—Typecontent=text/htmI: charset=utf-8">
<METAhttp-equiv=refreshcontent=6;URL=http://
www.cnil1.corn>
有这些信息以后就可以开始采集器的
'托?鄹律《??t避'姗妻垒嫩30*钟j皤《藏谁)I^(工}II啦 皇
}+蘸畦甜月址失叠臻鲰赞?斡件目l黼摩赢蚊,黼矧详采砖嚏齑兜憾一.蠢一 图1
2数据库设计
为提高程序的易用性,将程序中用到的数据结
库.简单起见,这里使用MDB数据库,相字段定
示.
表1数据表字段
I编号}段名类型含义
lID数字编号2
2文本站名中陶痰粕网一宠
3url本定部分httD:ilwww.cnillcorw'li/~et/aet 4siarlNum数字所取信
5数字所取信息的条数20
lextNanle文本q成的本地文件扩艉litml名
7dstD打文本本地存放嘲页的物理c:\websites
路径
;8errCharact文术错误删火特征<l{TMlHFAD,T川E>X,t不起,您访问fr:J l页
IdisableScr数字足否屏敝
}10extPage文本网贝的扩展麓shtml
……
_咖ORK&C0啊啊UNICATION………………………………………………一……………'………………?
相数据结构如下:判断收到的页面是否为
要访的页URL
待生
moveax,1
3程序设计ret
程的主要完成的是通过网络下载指定的URL网
该能用一个函数_downURLToDisk来成.函
个符串,一个是要下载的信息的URL地址,一
本地的文件名.该函数的详细定义
,
下指定的URL地址网页到指定的目录下 :调
:lpszURLdbhttp://www.baidu.com/123.htmO
:IpszFileNamedbc:\websites\l\l23.htmI,0
invoke—
downURLToDisk,addrIpszURL,addrIpszFile
:Name
:果返回0,表示调用失败,即网页不存在. :返1表示
:返回2表示成功
_
downURLToDiskproc—IpszURL,一Ipsz IocaI@hFile.@hConnect local@dwSize,@dwTemp local@szBu秆er【1024O】:byte local@dwType
pushad
invokeInternetGetConnectedState,addr@dwType,
NULL
.1f!eax
ret
.endif
invokeInternetOpen,addrproxylnfo1,INTER— NEOPEN—
nPRECONFIG.t
NULL,NULL,0
mOV固hConnecteax
invokeInternetOpenUrl.@hConnect,一
IpszURL,
NULL,Oi0,0一
mov@hConnect.eax
invokeInternetReadF{Ie,@hConnect;addr
@szBufferl10240.addr@dwSize| .ifleax
jmp—ret
.endif
ifI@dwSize
imp—ret
endif
invokeCreateFile,一Ipsz,GENERIC_WRITE.\ FILESHAREREAD,\
0CREATE删S,FLE—
TRIBUTE—N0RMAL;O
mov@hFile,eax
invokeWfiteFile.@hFile,addr@szBuffer,@dwSize.
addr@dwTemp,NULL
:循环读入内容,并写到
.whileTRUE
:将内存写入文件以供
jnvokelnternetReadFiIe,@hConnect,addr
@szBuffer,10240,addr@dwSize .1f!eax,
.break
.endif
.1f!@dwSize
.break
.endif
invokeWriteFile,@hFile,addr@szBuffer.@dwSize,
addr@dwTemp.NULL
.endw
lnvokeCIoseHandle,@hFile ,ret:popad
moveax,2
ret
_
downURLToDiskendp
程序查网络是否在线.然后创建一个Internet会话. 并与指定的URL建立连接,通过函
程序中用到的4个主要函
(1)InternetGetConnectedState.获取当前机器
BOOLInternetGetConnectedState(
OUTLPDWORDIpdwFlags, INDW0RDdwReserved
函数调后,将返回lpdwFlags值,通过判断该值.即可 获得当前主机连接Interact的状态.为只使用其判断是否处 于在线状态,,判断lpdwFlags
(2)[ntemetOpen.创建Intemet会话连接
………………………………………………………… 实用第
HINTERNETInternetOpen( LPCTSTRIpszAgent,
DWORDdwAccessType.
LPCTSTRIpszProxyName, LPCTSTRlpszPrOxyBypass, DWORDdwFlags
):
使用lpszAgent指定代理服务器名称(注意不要使用空字 符串.在这里使用了"Update1.0"作为代理名称),访问时直 接通过注册表定义的容
HINTERNEThlnternet,
LPCTSTRIpszUrl,
LPCTSTRIpszHeaders,
DWORDdwHeadersLength, DWORDdwFlags,
DWORDPTRdwContext
):
在
(4)InternetReadFile.读取Internet文件
LPVOIDIpBuffer,
DW0RDdwNumberOfBytesToRead, LPDWORDIpdwNumberOfBytesRead ):
在dwNumberOfBytesToRead中设置要读取的字数.并传 人接收据的缓冲区lpBuffer.
4结语
图2网站信息采集器运行
随着网信息的日益膨胀,从网站中广泛地获取有用的 信息,网站信息采集器应而生.它使
指定,无需登录网站,操作简单方便.不足之处是软件在 信息获取后的提,内容的组
(上接第59页)
}//类DbBean定
5系统的发布
系统开过程可以随时观看运情况(单击【F6】).开 发成功后即可发布到Web服务器上.一般情况下,利用Neat— Beans6.1开发工具生成的Web程序会自动保存在系统根目
服务器,后在Web服务器的管理控制中单击"部署…" 钮(管理控制台可以在NeatBeans环境下启动,也可以在浏 览器中输入http://localhost:4848来启动),即可将生成的程序文 件"JSPApp.war"部到务器,程序部成功的界面如图 3所示.一
,,黼ji l毒纛B8雁?;上下
Im?neI}…
曼s紫
图3将生成的程序文件成功发布到GlassFish
6结语
在MVC开发模型基础上.基于NeatBeans6.1开发 环境,讨论Web程序开发的主要骤,并针对"信息查询 系统"的特点,术难点进行了分析.给出了
希过此论述,抛砖引玉,为读者在设计与开发适合本 单位特点Web程
【1]1
[2]
【3】
4] [
[5]
【6】
参考文献
MySqlAB.MySqlServer4.1Documentation.MySqlAB.2007. http://www.netbeans.org.
http://www.javaeye.corn/.
http://www.mastertheboss.com/en/web-interfaces/124-jboss—
RichFaces—tutoria1.htm1.
http:/Mww.onjava.com/puh/a/onjava/2005/07/13/jsfupload.html,2005.
TheJavaEE5Tutorial,http://java.sun.com,javaee,5/docs/ tutorial/doe/index.htm】.
网站信息采集服务
1.1.1.1 网站信息采
, 自动后台运行,无需人
提供整定时定点载功能,可以指定自动下载的间隔时间,启动后无需户干预,系统就会源不断的把指定网站的信息抓取回来,保存在本地的硬盘上,
, 智能化信息处理,准确获取所
系统分析网站信息,每次只抓取最新的信息,对已经抓取过信息不再抓取。统能自动提取所需的新闻要素,除多余的信息和广
, 采用先进的信息流抓
目前市场的抓取工具一般采取页链接的实体抓取,能抓取可以直接链接到的网页,对于无法直接链接到原文件的网站无法。网站内容自动抓取系统通过信息进行抓取,只要能在浏览器上看到的网站都能抓取到,而不此站采什么术开发(如ASP技术,JAVA技术,php技术等等),
, 支持多种数据和文件格
系统提支目前流行的多数据库存储和文件格式转换,主要支持的数据库包括Oracle、SQL Server、MySQL、db2、Access等,也成XML、HTML等格式的件。方便用户在不同的
, 配置灵活
系统用XML 配置文件,用户可以方便地增删需要抓取的栏目,持定义多种网站结
程的效率高,资源占用较少,可以作为后台程运行,
网站信息采集表
网站信息采集表
企业名称
地 址
经营特色
电 话 经营
规 模 人均消
消费档次 停 车
包间说明 特约商家 折扣
优惠说明
QQ 送餐
备 注
网站信息采集表
企业名称
地 址
经营特色
电 话 经营类
规 模 人均消
消费档次 停 车 位
包间说明 特约商家 折扣
优惠说明
QQ 送餐电
备 注
说明:1、企业名称,地址尽
2、经营型包:住宿(商务酒店.公酒店.度假酒店.经济馆.汉中农家乐) 餐饮(中餐.西餐.自助火锅.快餐.小吃.干锅火锅.日理.川湘菜.汉中特色餐饮) 娱 (酒吧.KTV.美容美发.洗浴.健身.婚纱.摄影影院.网吧.棋牌..汽车养) 物街(商场.服饰.家居.酒行.食品) 出行 (旅行社.航空售票.
商息登录后,可以轻松查询到商家的联系信息和详细地点,并免得到一个属
商家以注册自己帐号,便可以管理自己的网站,发上传自己营业点的图片和最新优惠活动,并以通过在线留言
学校网站信息采集表
各学校网站管理员老
国家有关部门于2009年2月份陆续在全国范围内展整治未备案网站动,目前已进入严查惩办阶段。现依工信部通知,
鸡西信息教育中心对长期没更新、有论坛或没有注鸡西教育网“黑ICP备05005397 ”链接的学校网
现要求校网理员对本校网进行严格检查,发问题及时处理。并要求对本校网页及时更新、对网页效果不好的校要求重做;另外,学空间不能做其它用途,如有学校管理员上传个人网站或其它企事站,因此引的一切后果由本校自负,旦查出有此现象的学校对责任
要求联网学校火速提交备案信息,并按上述要求添加备案链接,信息中心会在两个工日内开通贵校
备案信息表
学校名称 所属教育
校 长 校长联系电
校 址 学校网
信员 信息员电话 信息员QQ号
FTP帐号 密
备
联
上
注:表中所指信息员即为本校网站的
鸡西市信息技术教育
2009(4(7