亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

打造屬于自己的搜索引擎

2024-05-04 11:05:16
字體:
來源:轉載
供稿:網友

擁有屬于自己的搜索引擎是很多人的想法,但是我們要怎么才能擁有屬于自己的搜索引擎呢?現在小編就教大家利用目前流行的數據采集方法實現屬于自己的搜索引擎,現在我們去看看打造屬于自己的搜索引擎的方法吧。

一、認識百度搜索

百度搜索,全球最大中文搜索引擎,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")
pn = Request.QueryString("pn")
'開始錯誤處理
On Error Resume Next
If Err.Number <> 0 Then
Response.Clear
'顯示錯誤信息給用戶 
Response.Write "<p align='center' ><font size=3> 出錯了,請重新打開百度搜索.</font></p>"
end if
%>
<HTML>
<HEAD>
<TITLE>百度搜索--<%=wd%></TITLE>
</HEAD>
<STYLE type=text/css>
<!--
body,td{font-family:arial}
TD{FONT-SIZE:9pt;LINE-HEIGHT:18px}
.cred{color:#FF0000}
//-->
</STYLE>

<BODY leftmargin="0" topmargin="3" marginwidth="0" marginheight="0">
<table align="center" width="98%" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff" >
<tr>
<form name="f1" method="post" action="searchi_bd.asp">
<td width=150 height=50>
你的LOGO
</td>
<td align="left">
<input name=wd size="40" maxlength="100" title="輸入關鍵字,然后Let's Searching..." value="<%=wd%>">
<input type="submit" value=" 百度搜索 ">
</td></form></tr>
</table>
<%
Dim strUrl,strTmp_bd,strInfo,strPage,strPageSum_bd,strQtime_bd
Dim bNoResult_bd,regEx,patrn
'百度查詢字符串
strUrl = "http://www.baidu.com/s?ie=gb2312&wd="&wd&am ... &pn&"&cl=3"
'開始采集
strTmp_bd = GetHTTPPage(strUrl)
If InStr(strtmp_bd,"未找到和您的查詢")<>0 Then
bNoResult_bd=1
End If

'截取"搜索結果"部分的內容
strinfo = strCut(strTmp_bd,"<DIV id=ScriptDiv></DIV>","<br clear=all>",2)
patrn="</td></tr></table><br>"
Set regEx = New RegExp ' 建立正則表達式。
regEx.Pattern = patrn ' 設置模式。
regEx.IgnoreCase = true 
regEx.Global = false 
strinfo=regEx.replace(strinfo,"") 

'截取"分頁區"部分的內容
strPage = strCut(strTmp_bd,"<br clear=all>","<br>",2)
strPage = Replace(strPage,"href=s?","href=searchi_bd.asp?")
'結果數量與用時
strPageSum_bd=strCut(strtmp_bd,"找到相關網頁約","篇",2)
if not IsNumeric(strPageSum_bd) then
strPageSum_bd=strCut(strtmp_bd,"找到相關網頁","篇",2)
end if
strQtime_bd=strCut(strtmp_bd,"用時","秒",2)
Set strTmp_bd=nothing

%>
<!-- T1-Start -->
<table cellspacing=0 cellpadding=0 border=0 width=98% align="center">
<tr valign=center align=middle height=18>
<td width=1 bgcolor=#999999>

<td nowrap style="FONT-WEIGHT:bold;COLOR:#ffffff;BACKGROUND-COLOR:#0033cc" width=64>互聯網</td>

<td align=right bgcolor=#eeeeee><nobr>找到符合<b><%=wd%></b>的相關網頁<b><%=strPageSum_bd%></b>篇,用時<b><%=strQtime_bd%></b>秒</nobr> </td>
</tr>
<tr><td bgcolor=#999999 colspan=3 height=2></td></tr></table>
</td>
</tr>
</table>

<%
if wd="" then
Response.Write "<p align='center' ><font size=-1> 您好,請在搜索框中輸入關鍵詞.</font></p>"
elseif bNoResult_bd=1 then
Response.Write "<p align='center' ><font size=-1> 抱歉,未找到任何符合您查詢條件的信息,請重新選擇合適的關鍵詞進行查詢.</font></p>"
else
%>
<table width="98%" align="center" cellspacing="0" cellpadding="0" border="0">
<tr>
<td style=line-height:160% bgcolor="#ffffff" width="75%" valign=top><br>
<%=strinfo%>
</td>
<td width="25%" valign=top><br> 這是你發揮的空間! 
</td>
</tr>
</table>
<table width="98%" align="center" cellspacing="0" cellpadding="4" border="0">
<tr>
<td align="center">
<br><font size=3><%=strPage%></font>
</td>
</tr>
</table>
<%End If 
set strinfo=nothing

%>
<hr size="1" width="760" color="#0000ff">

<div align="center"><font size=-1>
程序更新請到這里<span class="cred">(知識分享論壇)</span>查看</font>
</div>
</BODY>
</HTML>

<%
'采集函數
Function getHTTPPage(url) 
On Error Resume Next
dim http 
set http=Server.createobject("MSXML2.XMLHTTP") 
Http.open "GET",url,false 
Http.send() 
if Http.readystate<>4 then
exit function 
end if 
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
If Err.number<>0 then 
Response.Write "<div align='center'><b>服務器獲取文件內容出錯</b></div>" 
Err.Clear
End If 
End function
'字節流轉換為字符串
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

'截取字符串,1.包括前后字符串,2.不包括前后字符串
Function strCut(strContent,StartStr,EndStr,CutType)
Dim S1,S2
On Error Resume Next
select Case CutType
Case 1
S1 = InStr(strContent,StartStr)
S2 = InStr(S1,strContent,EndStr)+Len(EndStr)
Case 2
S1 = InStr(strContent,StartStr)+Len(StartStr)
S2 = InStr(S1,strContent,EndStr)
End select
If Err Then
strCute = "<p align='center' ><font size=-1>截取字符串出錯.</font></p>"
Err.Clear
Exit Function
Else
strCut = Mid(strContent,S1,S2-S1)
End If
End Function

%>


把上面的代碼Copy到記事本保存為searchi_bd.asp,就可以使用了。如果你要更改文件名,請同時把以下代碼中藍色標識部分改為你的文件名

strPage = Replace(strPage,"href=s?","href=searchi_bd.asp?")

幾點說明:

1、百度搜索基本上沒有什么反采集的措施,主要一點就是百度隔一段時間會更改返回結果頁面的源代碼,所以要經常觀察百度的搜索結果頁面,發現代碼變動了,就將幾處字符串標識改動一下。在反采集方面,百度比Google大度多了,目前還沒發現由于頻繁查詢百度而出現暫時屏蔽來源站點IP的現象,而在Google查詢中經常出現這個現象,如何解決就在下篇文章里談一談。

2、采集比較耗資源,搜索小偷程序一樣,所以程序中盡量早點釋放變量或對象。如果你的空間資源不多,建議就不要搞這些了。

3、有些人可能不愿意在自己做的搜索小偷中保留任何百度的功能連接,比如百度快照和站內搜索等功能。為此我在下載包中提供一個無百度任何連接的精簡版,你可以根據需要使用,在本文中就不列出代碼了,其實和完整版的差不多。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新技術頻道。

上一篇:淺析UBB編輯器

下一篇:如何防止被采集

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色妞久久福利网| 亚洲国产日韩欧美综合久久| 亚洲视频在线观看视频| 国产精品欧美激情在线播放| 国产精品久久久久久久久借妻| 91成品人片a无限观看| 欧美精品中文字幕一区| 亚洲三级黄色在线观看| 国产性猛交xxxx免费看久久| 精品国产一区二区三区四区在线观看| 国产精品观看在线亚洲人成网| 亚洲成人精品久久| 日韩免费观看av| 亚洲人成电影网站色…| 91精品国产成人www| 欧美激情亚洲自拍| 久久精品中文字幕| 日韩经典中文字幕| 国产福利视频一区二区| 两个人的视频www国产精品| 51视频国产精品一区二区| 亚洲天堂av在线免费| 亚洲午夜精品久久久久久性色| 激情懂色av一区av二区av| 久久久在线观看| 日韩欧美精品网址| 欧美视频在线观看免费| 国产91色在线|免| 日本a级片电影一区二区| 久久精品夜夜夜夜夜久久| 欧美一区深夜视频| 亚洲午夜激情免费视频| 久久久噜噜噜久噜久久| 日韩经典第一页| 亚洲福利视频在线| 另类少妇人与禽zozz0性伦| 成人免费在线视频网址| 九九九热精品免费视频观看网站| 亚洲大尺度美女在线| 国产精品视频一区二区三区四| 久久久久久一区二区三区| 日韩视频在线免费观看| 国产精品va在线播放我和闺蜜| 日韩国产一区三区| 亚州成人av在线| 91精品视频在线看| 91精品久久久久久久| 亚洲偷欧美偷国内偷| 国产视频精品久久久| 亚洲成人久久电影| 91香蕉嫩草影院入口| 4438全国亚洲精品在线观看视频| 性色av一区二区三区红粉影视| 欧美激情视频在线免费观看 欧美视频免费一| 欧美精品久久久久久久免费观看| 亚洲第一页自拍| 国产欧美日韩中文字幕| 精品国产依人香蕉在线精品| 亚洲女人天堂色在线7777| 亚洲女性裸体视频| 最近2019年手机中文字幕| 欧美精品激情视频| 91欧美精品成人综合在线观看| 国产精品午夜国产小视频| 97国产suv精品一区二区62| 欧美做爰性生交视频| 欧美最猛黑人xxxx黑人猛叫黄| 日本精品中文字幕| 亚洲精品国偷自产在线99热| 亚洲国产精品嫩草影院久久| 亚洲自拍欧美色图| 亚洲一区二区三区777| 亚洲а∨天堂久久精品9966| 国产精品久久久| 亚洲男人天堂久| 日韩日本欧美亚洲| 性色av一区二区三区在线观看| 日韩av黄色在线观看| 亚洲第一免费网站| 国产精品免费久久久| 亚洲风情亚aⅴ在线发布| 国产丝袜一区二区三区| 国产美女久久久| 欧美激情精品久久久久| 国产69精品久久久久久| 日韩精品一区二区视频| 欧美激情日韩图片| 亚洲国产精品中文| 亚洲欧美另类自拍| 亚洲免费av网址| 久久精品视频播放| 久久久亚洲国产天美传媒修理工| 国产亚洲精品久久久久久777| 日韩美女免费视频| 久久精品美女视频网站| 精品视频偷偷看在线观看| 国产成人午夜视频网址| 亚洲福利在线视频| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产又黄又爽女人高潮的| 亚洲激情久久久| 欧美性猛交xxxx免费看久久久| 国产精品成人一区二区| 亚洲欧美另类中文字幕| 尤物99国产成人精品视频| 欧美最猛黑人xxxx黑人猛叫黄| 欧美精品激情在线观看| 国产99视频精品免视看7| 国产va免费精品高清在线| 日韩av中文字幕在线| 亚洲美女在线视频| 久久久久久久久电影| 国产精品色悠悠| 国产97人人超碰caoprom| 国产丝袜一区二区三区免费视频| 亚洲一区二区日本| 庆余年2免费日韩剧观看大牛| 国产在线拍偷自揄拍精品| 亚洲成avwww人| 亚洲精品在线视频| 7777精品久久久久久| 久久影院资源站| 国产女人18毛片水18精品| 永久免费看mv网站入口亚洲| 青青久久aⅴ北条麻妃| 国产精品热视频| 亚洲国产精品久久久久秋霞不卡| 日本午夜精品理论片a级appf发布| 91网站免费看| 日韩精品福利网站| 91精品久久久久久久久久久| 国产日韩在线视频| 日韩欧美a级成人黄色| 黄色成人av在线| 韩国美女主播一区| 欧美性猛交xxx| 91国在线精品国内播放| 精品福利在线看| 日韩av电影手机在线| 亚洲第一精品久久忘忧草社区| 日韩在线观看电影| 国产日韩欧美日韩大片| 日韩精品免费在线观看| 精品呦交小u女在线| 日韩欧美在线中文字幕| 91久久久久久久久久| 欧美大片在线看| 97超碰色婷婷| 成人免费在线视频网站| 一区二区三区高清国产| 欧美精品少妇videofree| 亚洲欧美日韩精品| 欧美成人精品一区二区| 国产精品永久免费观看| 亚洲成人精品久久久| 欧美疯狂xxxx大交乱88av| 日本中文字幕久久看| 国产精品91免费在线| 国产精品草莓在线免费观看| 欧美华人在线视频| 人人做人人澡人人爽欧美| 午夜精品久久久久久久99黑人| 国内精品视频久久| 欧美日韩亚洲91|