帮你打造属于自己的搜索引擎---百度篇
2024-05-04 11:02:49
供稿:网友
 
想拥有属于自己的搜索引擎吗?采用目前流行的数据采集方法,你就可以立即拥有。下面就教你一步步地去实现。 
一、认识百度搜索 
百度搜索,全球最大中文搜索引擎,2005年8月5日在美国纳斯达克上市交易,目前是国内用户使用率最高的搜索引擎,提供网页、新闻、图片、音乐、地图等各种搜索 
1、百度网页搜索的查询参数 
必备参数 
☆ wd--查询的关键词(Keyword) 
☆ pn--显示结果的页数(Page Number) 
☆ cl--搜索类型(Class),cl=3为网页搜索 
可选参数 
☆ rn--搜索结果显示条数(Record Number),取值范围在10--100条之间,缺省设置rn=10 
☆ ie--查询输入文字的编码(Input Encoding),缺省设置ie=gb2312,即为简体中文 
☆ tn--提交搜索请求的来源站点 
几个有用的tn  
tn=baidulocal 表示百度站内搜索,返回的结果很干净,无广告干扰。比如,在百度站内搜索"快乐",看看返回结果是不是很清爽。 
tn=baiducnnic 想把百度放在框架中吗?试试这个参数就可以了,是百度为Cnnic定制的 
☆ si--在限定的域名中搜索,比如想在新浪的站内搜索可使用参数si=sina.com.cn,要使这个参数有效必须结合ct参数一起使用。 
☆ ct--此参数的值一般是一串数字,估计应该是搜索请求的验证码 
si和ct参数结合使用,比如在sina.com.cn中搜索"理想",可用:http://www.baidu.com/baidu?ie=utf-8&am ... n&cl=3&word=理想 
☆ bs--上一次搜索的关键词(Before Search),估计与相关搜索有关 
2、百度搜索结果页面结构 
按源代码结构自上而下为: 
搜索框 
右侧的火爆地带固定排名 
搜索结果 
分页区 
相关搜索 
底部搜索框 
版权区 
其中"搜索结果、分页区"这两部分就是我们需要的有效数据,根据其代码结果可以发现其唯一的字符串标识,通过这个标识截取内容就可以了,具体看后面的代码。 
二、核心函数--使用asp的xmlhttp组件 
数据采集程序,俗称小偷程序,其核心部分就是这个xmlhttp组件,用xmlhttp采集数据有些老生常谈了,网上资料也不少,一般的采集代码都是 
set http=Server.createobject("MSXML2.XMLHTTP")  
Http.open "GET",url,false '打开xmlhttp 
Http.send() '发送请求 
if Http.readystate<>4 then 
exit function  
end if  
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312") '返回结果(一般是字节流),并将字节流转换为字符串 
set http=nothing '释放xmlhttp 
详细应用见下面的完整代码 
三、完整代码(文件名:searchi_bd.asp) 
<% 
option explicit 
Dim wd,pn 
wd = Request("wd")