2007-5-11 作者:翟振恺 来源:fansart.com 点击:1971
说一下我对HTML防采集却不防搜索引擎蜘蛛的一些经验:
我开发过几个采集程序,也研究过很多采集程序代码,所以对采集程序的原理还算是稍微有些了解。
先说一下采集原理:
采集程序的主要步骤如下:
一、获取被采集的页面的内容
二、从获取代码中提取所有用的数据
一、获取被采集的页面的内容
我目前所掌握的ASP常用获取被采集的页面的内容方法:
1、用serverXMLHTTP组件获取数据
Function GetBody(weburl)
'创建对象
Dim ObjXMLHTTP
Set ObjXMLHTTP=Server.CreateObject("MSXML2.serverXMLHTTP")
'请求文件,以异步形式
ObjXMLHTTP.Open "GET",weburl,False
ObjXMLHTTP.send
While ObjXMLHTTP.readyState <> 4
ObjXMLHTTP.waitForResponse 1000
Wend
'得到结果
GetBody=ObjXMLHTTP.responseBody
'释放对象
Set ObjXMLHTTP=Nothing
End Function
调用方法:
GetBody(文件的URLf地址)
2、或XMLHTTP组件获取数据
Function GetBody(weburl)
'创建对象
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", weburl, False, "", ""
.Send
GetBody = .ResponseBody
End With
'释放对象
Set Retrieval = Nothing
End Function
调用方法:
GetBody(文件的URLf地址)
这样获取的数据内容还需要进行编码转换才可以使用
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
调用方法:BytesToBstr(要转换的数据,编码)'编码常用为GB2312和UTF-8
二、从获取代码中提取所有用的数据
目前我掌握的方法有:
1、用ASP内置的MID函数截取需要的数据
Function body(wstr,start,over)
start=Newstring(wstr,start)
'设置需要处理的数据的唯一的开始标记
over=Newstring(wstr,over)
'和start相对应的就是需要处理的数据的唯一的结束标记
body=mid(wstr,start,over-start)
'设置显示页面的范围
End Function
调用方法:body(被采集的页面的内容,开始标记,结束标记)
2、用正则获取需要的数据
Function body(wstr,start,over)
Set xiaoqi = New Regexp'设置配置对象
xiaoqi.IgnoreCase = True'忽略大小写
xiaoqi.Global = True'设置为全文搜索
xiaoqi.Pattern = "”&start&“.+?”&over&“"'正则表达式
Set Matches =xiaoqi.Execute(wstr)'开始执行配置
set xiaoqi=nothing
body=""
For Each Match in Matches
body=body&Match.Value '循环匹配
Next
End Function
调用方法:body(被采集的页面的内容,开始标记,结束标记)
采集程序祥细思路:
1、取得网站的分页列表页的每页地址
目前绝大部分动态网站的分页地址都有规则,如:
动态页
第一页:index.asp?page=1
第二页:index.asp?page=2
第三页:index.asp?page=3
.....
静态页
第一页:page_1.htm
第二页:page_2.htm
第三页:page_3.htm
.....
取得网站的分页列表页的每页地址,只需要用变量替代每页地址的变化的字符即可如:page_<%="&page&"%>.htm
2、获取被采集网站的分页列表页内容
3、从分页列表代码中提取被采集的内容页面的URL连接地址
绝大部分分页页面里的内容页连接也有固定规则,如:
<a href="url1">连接1</a> <br>
<a href="url2">连接2</a> <br>
<a href="url3">连接3</a> <br>
用以下代码就可以获得一个URL连接集合
Set xiaoqi = New Regexp
xiaoqi.IgnoreCase = True
xiaoqi.Global = True
xiaoqi.Pattern = ””“.+?”““
Set Matches =xiaoqi.Execute(页面列表内容)
set xiaoqi=nothing
url=""
For Each Match in Matches
url=url&Match.Value
Next
4、取得被采集的内容页面内容,根据”提取标记“从被采集的内容页面分别截取要取得的数据
因为是动态生成的页面,大多数内容页面内都有相同的html标记,我们可以根据这些有规则的标记提取需要的各个部分的内容。
如:
每个页面都有网页标题<title>网页标题</title>,用我上面写的MID截取函数就可以获得<title></title>之间的值,也可以用正则表达式来获得。
例:body("<title>网页标题</title>","<title>","</title>")
声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。如有疑问请与站长联系。
相关链接更多...
- Sun将推出预装Windows版服务器2007-5-11
- 传郭台铭正与阿里巴巴洽谈合作2007-5-11
- 巧妙提取Flash文件中的素材[图]2007-5-11
- Ricardo Grzeca 网页设计[图]2007-5-11
- 美公司开发自然语言搜索挑战关键词2007-5-11
- ASP网站数据采集的攻、防原理和策略2007-5-11
- AJAX与ASP的无刷新登陆验证技术 2007-5-11
- 刷新页面方式总结(HTML,ASP,JS) 2007-5-11
- 利用XMLHTTP无刷新获取数据2007-5-11
- Javascript+ASP打造无刷新新闻列表[图]2007-5-11
网友评论
目前没有评论!
全站精华
- 07李宁T恤图形设计大赛作品欣赏2[图]
- 07李宁T恤图形设计大赛作品[图]
- 周杰伦豪华公司的室内设计[图]
- 餐厅设计欣赏[图]
- 浴室地板防滑防水的设计原则要点
- 精美绝伦的粉红女郎插画T恤欣赏[图]
- T-shirt个性定制设计[图]
- 北京2008年奥运会火炬设计欣赏[图]
- 世界著名标志欣赏(二)[图]
- 世界著名标志欣赏(一)[图]
- 2008奥运会主馆设计方案欣赏(一) [图]
- 2008奥运会主馆设计方案欣赏(二)[图]
- 2008奥运会主馆设计方案欣赏(三)[图]
- 访著名韩国3D插画师 李素雅[图]
- Julie Bell插图欣赏[图]
- 不可思议的创意广告--国外广告精品,设计[图]
- 惹火酒精饮料广告诱惑撩人[图]
- casablanca维多利亚婚纱 欧陆皇家情调[图]
- 难忘蕾丝爱恋--婚纱款式欣赏[图]
- 韩式风格装修设计欣赏[图]
- 20万元全球征集杭州城市标志
- 桃子精美插画欣赏[图]
- “创意世博”获奖者畅想“城市,让生活更美好”[图]
- 另类不规则家具 享受时尚设计新思潮[图]
- 首届中国元素国际创意大赛作品欣赏[图]
- Clarissa Soto 平面设计[图]
- 2003,2005美国科罗拉多国际海报邀请展作品回顾[图]
- Atypyk 平面创意及包装设计[图]
- 张旺古典插画欣赏 [图]
- 国外Mugg&Bean趣味广告欣赏[图]
图文精彩
![07李宁T恤图形设计大赛作品欣赏2[图]--时装魅影](../smallimg/20075/20075101034352.jpg)
【2007-5-10 10:48:24】
07李宁T恤图形设计大赛作品欣赏2
07李宁T恤图形设计大赛作品欣赏2
![07李宁T恤图形设计大赛作品[图]--时装魅影](../smallimg/20075/20075101022252.jpg)
【2007-5-10 10:26:02】
07李宁T恤图形设计大赛作品
07李宁T恤图形设计大赛作品
![周杰伦豪华公司的室内设计[图]--环境艺术](../smallimg/20075/20075101010244.jpg)
【2007-5-10 10:11:22】
周杰伦豪华公司的室内设计
周杰伦豪华公司的室内设计
![餐厅设计欣赏[图]--环境艺术](../smallimg/20075/2007510826472.jpg)
【2007-5-10 8:28:07】
餐厅设计欣赏
餐厅设计欣赏
![适合的婚纱让新娘更美[图]--时装魅影](../smallimg/20075/2007582253121.jpg)
【2007-5-8 22:53:59】
适合的婚纱让新娘更美
适合的婚纱让新娘更美
![精美绝伦的粉红女郎插画T恤欣赏[图]--时装魅影](../smallimg/20075/2007582234572.jpg)
【2007-5-8 22:37:44】
精美绝伦的粉红女郎插画T恤欣赏
精美绝伦的粉红女郎插画T恤欣赏
![T-shirt个性定制设计[图]--时装魅影](../smallimg/20075/200758112404.jpg)
【2007-5-8 1:13:24】
T-shirt个性定制设计
T-shirt个性定制设计
![Vista图标是谁设计的?[图]--平面广告](../smallimg/20075/200755506181.jpg)
【2007-5-5 5:06:32】
Vista图标是谁设计的?
Vista图标是谁设计的?
![徐悲鸿2000万港币作品京沪展出[图]--中国艺术](../smallimg/20075/200755501561.jpg)
【2007-5-5 5:02:41】
徐悲鸿2000万港币作品京沪展出
徐悲鸿2000万港币作品京沪展出
![北京2008年奥运会火炬设计欣赏[图]--平面广告](../smallimg/20074/2007428852361.jpg)
【2007-4-28 8:52:46】
北京2008年奥运会火炬设计欣赏
北京2008年奥运会火炬设计欣赏
![[玉器欣赏]宋](../smallimg/20074/2007428850191.jpg)
【2007-4-28 8:50:34】
[玉器欣赏]宋 玉云龙纹炉
[玉器欣赏]宋 玉云龙纹炉
![11岁小学女生设计农运会吉祥物[图]--平面广告](../smallimg/20074/2007427834182.jpg)
【2007-4-27 8:34:50】
11岁小学女生设计农运会吉祥物
11岁小学女生设计农运会吉祥物
![世界著名标志欣赏(二)[图]--平面广告](../smallimg/20074/20074262109262.gif)
【2007-4-26 21:21:20】
世界著名标志欣赏(二)
世界著名标志欣赏(二)
![世界著名标志欣赏(一)[图]--平面广告](../smallimg/20074/20074261750235.gif)
【2007-4-26 17:55:21】
世界著名标志欣赏(一)
世界著名标志欣赏(一)

【2007-4-25 10:37:06】
2008奥运会主馆设计方案欣赏(一)
2008奥运会主馆设计方案欣赏(一)
![2008奥运会主馆设计方案欣赏(二)[图]--环境艺术](../smallimg/20074/20074251024281.jpg)
【2007-4-25 10:27:58】
2008奥运会主馆设计方案欣赏(二)
2008奥运会主馆设计方案欣赏(二)
![2008奥运会主馆设计方案欣赏(三)[图]--环境艺术](../smallimg/20074/20074251013342.jpg)
【2007-4-25 10:15:22】
2008奥运会主馆设计方案欣赏(三)
2008奥运会主馆设计方案欣赏(三)

【2007-4-25 9:53:38】
访著名韩国3D插画师 李素雅
访著名韩国3D插画师 李素雅

【2007-4-23 15:47:07】
Julie Bell插图欣赏
Julie Bell插图欣赏
![国外tmdesign:平面广告设计欣赏[图]--平面广告](../smallimg/20074/20074181608353.jpg)
【2007-4-18 16:13:27】
国外tmdesign:平面广告设计欣赏
国外tmdesign:平面广告设计欣赏