幫你打造屬于自己的搜索引擎---百度篇
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")