拥有属于自己的搜索引擎

上传人:z**** 文档编号:126368698 上传时间:2022-07-28 格式:DOC 页数:14 大小:42KB
收藏 版权申诉 举报 下载
拥有属于自己的搜索引擎_第1页
第1页 / 共14页
拥有属于自己的搜索引擎_第2页
第2页 / 共14页
拥有属于自己的搜索引擎_第3页
第3页 / 共14页
资源描述:

《拥有属于自己的搜索引擎》由会员分享,可在线阅读,更多相关《拥有属于自己的搜索引擎(14页珍藏版)》请在装配图网上搜索。

1、想拥有属于自己的搜索引擎吗?采用目前流行的数据采集方法,你就 可以立即拥有。下面就教你一步步地去实现。一、认识百度搜索百度搜索,全球最大中文搜索引擎,2005 年 8 月 5 日在美国纳斯 达克上市交易,目前是国内用户使用率最高的搜索引擎,提供网页、 新闻、图片、音乐、地图等各种搜索1、百度网页搜索的查询参数必备参数 wd-查询的关键词(Keyword) pn-显示结果的页数(Page Number) cl-搜索类型(Class), cl=3为网页搜索可选参数 rn-搜索结果显示条数(Record Number),取值范围在10-100条之 间,缺省设置 rn=10 ie-查询输入文字的编码(

2、Input Encoding),缺省设置ie=gb2312,即为简体中文 tn-提交搜索请求的来源站点 几个有用的 tntn=baidulocal 表示百度站内搜索,返回的结果很干净,无广告干扰。比如,在百度站内搜索“快乐”,看看返回结果是不是很清爽。tn=baiducnnic 想把百度放在框架中吗?试试这个参数就可以了, 是百度为 Cnnic 定制的 si- 在限定的域名中搜索 ,比如想在新浪的站内搜索可使用参数 ,要使这个参数有效必须结合ct参数一起使用。 ct-此参数的值一般是一串数字,估计应该是搜索请求的验证码si 和 ct 参数结合使用,比如在 中搜索理想,可用: url 12&cl

3、=3 &wd=/url理想 bs-上一次搜索的关键词(Before Search),估计与相关搜索有关2、百度搜索结果页面结构按源代码结构自上而下为:搜索框右侧的火爆地带固定排名搜索结果分页区相关搜索底部搜索框版权区其中“搜索结果、分页区”这两部分就是我们需要的有效数据,根据其 代码结果可以发现其唯一的字符串标识,通过这个标识截取内容就可以了,具体看后面的代码。二、核心函数-使用 asp 的 xmlhttp 组件 数据采集程序,俗称小偷程序,其核心部分就是这个 xmlhttp 组件,用 xmlhttp 采集数据有些老生常谈了,网上资料也不少,一般的采集代 码都是set http=Server.

4、createobject(MSXML2.XMLHTTP)Http.open GET,url,false打开 xmlhttpHttp.send()发送请求if Http.readystate4 thenexit functionend ifgetHTTPPage=bytesToBSTR(Http.responseBody,GB2312) 返回结果 (一般是字节流),并将字节流转换为字符串set http=nothing 释放 xmlhttp详细应用见下面的完整代码三、完整代码(文件名:searchi_bd.asp)Code Start% option explicitDim wd,pnwd =

5、Request(wd)pn = Request.QueryString(pn) 开始错误处理On Error Resume NextIf Err.Number 0 ThenResponse.Clear 显示错误信息给用户Response.Write 出错了,请重新打 开百度搜索.end if%百度搜索-你的 LOGOvinput name=wd size=40 maxlength=100 title=输入关键字,然后Lets Searching. value=%Dim strUrl,strTmp_bd,strInfo,strPage,strPageSum_bd,strQtime_bdDim b

6、NoResult_bd,regEx,patrn百度查询字符串 strUrl = 开始采集strTmp_bd = GetHTTPPage(strUrl)If InStr(strtmp_bd,未找到和您的查询)0 ThenbNoResult_bd=1End If截取搜索结果部分的内容strinfo = strCut(strTmp_bd,2)patrn=Set regEx = New RegExp 建立正则表达式。 regEx.Pattern = patrn 设置模式。regEx.IgnoreCase = trueregEx.Global = false strinfo=regEx.replace(

7、strinfo,)截取分页区部分的内容strPage = strCut(strTmp_bd,2) strPage = Replace(strPage,href=s?,href=searchi_bd.asp?)结果数量与用时strPageSum_bd=strCut(strtmp_bd,找到相关网页约,”篇,2)if not IsNumeric(strPageSum_bd) thenstrPageSum_bd=strCut(strtmp_bd,找到相关网页,”篇,2)end ifstrQtime_bd=strCut(strtmp_bd,用时,秒,2)Set strTmp_bd=nothing% 互

8、联网 找至U符合 的 相 关 网 页 篇 , 用 时 秒 %if wd= thenResponse.Write 您好,请在搜 索框中输入关键词.elseif bNoResult_bd=1 thenResponse.Write 抱歉,未找到 任何符合您查询条件的信息,请重新选择合适的关键词进行查 询.else% 这是你发挥的空间!程序更新请到这里vspan class=HcredH(知识分享论坛)v/spAN查看 %采集函数Function getHTTPPage(url)On Error Resume Nextdim httpset http=Server.createobject(MSXML

9、2.XMLHTTP)Http.open GET,url,falseHttp.send()if Http.readystate4 thenexit functionend ifgetHTTPPage=bytesToBSTR(Http.responseBody,GB2312)set http=nothingIf Err.number0 thenResponse.Write 服务器获取文件内容出错Err.ClearEnd IfEnd function 字节流转换为字符串Function BytesToBstr(body,Cset)dim objstreamset objstream = Server

10、.CreateObject(adodb.stream)objstream.Type = 1objstream.Mode =3objstream.Openobjstream.Write bodyobjstream.Position = 0objstream.Type = 2objstream.Charset = CsetBytesToBstr = objstream.ReadTextobjstream.Closeset objstream = nothingEnd Function截取字符串,1.包括前后字符串,2.不包括前后字符串Function strCut(strContent,Start

11、Str,EndStr,CutType)Dim S1,S2On Error Resume NextSelect Case CutTypeCase 1S1 = InStr(strContent,StartStr)S2 = InStr(S1,strContent,EndStr)+Len(EndStr)Case 2S1 = InStr(strContent,StartStr)+Len(StartStr)S2 = InStr(S1,strContent,EndStr)End SelectIf Err ThenstrCute = 截 取 字 符 串 出 错.Err.ClearExit FunctionEl

12、sestrCut = Mid(strContent,S1,S2-S1)End IfEnd Function%Code End把上面的代码Copy到记事本保存为searchi_bd.asp,就可以使用了。如果你要更改文件名,请同时把以下代码中蓝色标识部分改为你的文 件名strPage = Replace(strPage,href=s?,href=searchi_bd.asp?)几点说明:1、百度搜索基本上没有什么反采集的措施,主要一点就是百度隔一 段时间会更改返回结果页面的源代码,所以要经常观察百度的搜索结 果页面,发现代码变动了,就将几处字符串标识改动一下。在反采集 方面,百度比 Google

13、 大度多了,目前还没发现由于频繁查询百度而 出现暂时屏蔽来源站点 IP 的现象,而在 Google 查询中经常出现这个 现象,如何解决就在下篇文章里谈一谈。2、采集比较耗资源,搜索小偷程序一样,所以程序中尽量早点释放变 量或对象。如果你的空间资源不多,建议就不要搞这些了。3、有些人可能不愿意在自己做的搜索小偷中保留任何百度的功能连 接,比如百度快照和站内搜索等功能。为此我在下载包中提供一个无 百度任何连接的精简版,你可以根据需要使用,在本文中就不列出代 码了,其实和完整版的差不多。演示和下载 完整版本演示(含百度连接):url 精简版本演示(无百度连接):url下载(包括本篇文章、searchi_bd.asp完整版本、searchi_bdl.asp精简 版本)请到这里(知识分享论坛url下载代码

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!