icroSoft的asp(Active Server Page)技術極大的方便了在網絡中對於數據庫的訪問,而且由於ASP不同於CGI需要那麼多的請求(減少了服務器的資源占用),以及ASP同Windows NT、2000的結合使得ASP技術被廣泛的應用於今日的Internet,然而不知道你仔細的想過沒有!ASP除了利用ADO對數據庫的訪問和其他幾個內置組件的利用外,就不能作其他什麼的了,相對於perl,php等程序,ASP的功能看起來就非常簡單,而且功能缺乏;但是老比畢竟是老比,他給大家留了一手,那就是ASP組件(關於組件的概念,現在一大堆,你可不要搞錯了),通過組件的開發你可以做到其他語言(比如PHP,PERL,C++)能做到的一切,甚至在某些方面還能更加超出,本文力求給你展示一下ASP組件的強大功能,但是由於ASP組件自身的過(使用的是非注冊組件),可能有的時候使用會出現不穩定的狀態,然而本文是力求向你展示一點東西以及提供一種思路給你,而不是其他,所以不足的地方就請求了原諒了!
代碼思路:一般來看,我們提交一個表單給一個搜索引擎程序,搜索引擎獲得提交的數據然後處理,返回結果;然而這種東西其實都是取得了一個提交的變量,我們可以使用另外一種直接跟從連接的方式訪問搜索引擎,例如你可以使用
yeah的首頁搜索一個關鍵字“xuankong”,也可以使用下面的連接“http://search.163.com/CGI-
bin/search/engine/search.fCGI?key=xuankong”取得使用結果,本文就是通過使用ASP的HTTP組件訪問這種直接的連接,使用GET方式取得原本在WEB頁中返回的數據,然後輸出。
如果本組件能夠實現多線程(如果那樣就可以同時對不同的引擎取得數據,不必象現在單一的訪問然後取得結果,)和代碼進一步的優化和改進的話,將會極大的節約你的時間,讓你一次搜索同時返回多個引擎的結果!
備注:搜索出來的結果中,由於某些引擎的類目使用了相對的連接,所以無效(這些結果其實你都可以處理的,只是筆者太懶了,所以不想花那些功夫),但是所有的網站和網頁的連接都是有效的,本文提供的代碼只是適合於測試,不適合於具體的應用,如果需要具體的應用,需要使用適當的http組件,或者如果你是程序高手的話可以自己寫多線程的組件,關於http組件的代碼,你可以在www.chinaasp.com看到,欲得到更多的ASP組件請訪問www.aspcn.com!
代碼開始:
$#@60;!--
有任何的意見和建議請Mail:[email protected],
本代碼使用了http組件同 閹鞒隽思父鏊閹饕娴氖荩盟械乃閹鹘峁允駒谝桓鲆趁娴敝校疚鬧皇翹峁┮恢炙悸泛退伎幾蠹藝故続SP組件的強大功能! 由於本組件是非注冊組件可能功能有一定限制,同時由於同時搜索了幾個引擎(搜索引擎可以任意擴充,但是會影響速度的),所以系統輸出數據的時間較長,請耐心等待在使用本代碼前請你先去下載
http://www.serverobjects.com/comp/asphttp3.zip,然好解壓縮到你的system32目錄(winnt or win2000)
使用regsvr32 ASPhttp.dll 注冊本組件,然後拷貝本文件到相關的IIS可執行目錄,使用IE或者netscape浏覽
--$#@62;
$#@60;%
’判斷是輸出頁面還是處理數據,從而調用不同的部分
keyWord=trim(request.form("keyWord"))
if isnull(keyword) or keyWord="" then
%$#@62;
$#@60;!--
Html頁面代碼顯示
--$#@62;
$#@60;html$#@62;
$#@60;head$#@62;
$#@60;title$#@62;ASPCN.COM 超級搜索引擎$#@60;/title$#@62;
$#@60;meta http-equiv="Content-Type" content="text/Html; charset=gb2312"$#@62;
$#@60;META NAME="Author" CONTENT="蒲俊傑"$#@62;
$#@60;META NAME="KeyWords" CONTENT="ASP,組件,www.ASPcn.com"$#@62;
$#@60;style type="text/CSS"$#@62;
$#@60;!--
table { font-size: 9pt; font-style: normal}
test { border: 1px #000000 dashed; border-color: #000000 none}
test1 { background-color: #CCFFCC; clip: rect( ); font-size: 9pt; font-style:
normal; border-style: dashed; border-top-width: 1px; border-right-width: 1px;
border-bottom-width: 1px; border-left-width: 1px}
--$#@62;
$#@60;/style$#@62;
$#@60;/head$#@62;
$#@60;body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"$#@62;
$#@60;table width="75%" border="1" align="center" height="20" cellpadding="0"
cellspacing="1" bgcolor="#66CC99" bordercolor="#FFFFFF"$#@62;
$#@60;tr$#@62;
$#@60;td height="4"$#@62;
$#@60;div align="center"$#@62;$#@60;font color="#000000" size="2"
face="Arial"$#@62;ASPCN.COM$#@60;/font$#@62;$#@60;font color="#000000" size="3"
face="Arial"$#@62;$#@60;/font$#@62;$#@60;b$#@62;$#@60;font color="#000000" size="3" face="Arial"$#@62;
$#@60;/font$#@62;$#@60;font color="#000000" size="3" face="仿宋_GB2312"$#@62;超級搜索引擎
$#@60;/font$#@62;$#@60;/b$#@62;$#@60;/div$#@62;
$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;tr bordercolor="#66CC99"$#@62;
$#@60;td height="21"$#@62;請選擇下面的搜索引擎:(請注意:本搜索引擎只是適合於$#@60;font
color="#ffffff"$#@62;網頁搜索$#@60;/font$#@62;)$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;tr bordercolor="#FFFFFF" align="center" valign="top"$#@62;
$#@60;td height="20"$#@62;
$#@60;form method="post" action="http.ASP"$#@62;
$#@60;table width="96%" border="0" height="21" align="center"$#@62;
$#@60;tr$#@62;
$#@60;td height="10" width="31%"$#@62;
$#@60;div align="right"$#@62;請輸入你要搜索的關鍵字: $#@60;/div$#@62;
$#@60;/td$#@62;
$#@60;td height="10" width="69%"$#@62;
$#@60;input type="text" name="keyWord" class="test"$#@62;
$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;tr$#@62;
$#@60;td height="2" width="31%"$#@62;
$#@60;div align="right"$#@62;請選擇你使用的搜索引擎: $#@60;/div$#@62;
$#@60;/td$#@62;
$#@60;td height="2" width="69%"$#@62;
$#@60;input type="checkbox" name="yeah" value="yeah"$#@62;
Yeah
$#@60;input type="checkbox" name="yahoo" value="yahoo"$#@62;
Yahoo
$#@60;input type="checkbox" name="sina" value="sina"$#@62;
Sina
$#@60;input type="checkbox" name="sohu" value="sohu"$#@62;
Sohu
$#@60;input type="checkbox" name="goyoyo" value="goyoyo"$#@62;
Goyoyo$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;tr$#@62;
$#@60;td height="2" colspan="2"$#@62;
$#@60;div align="right"$#@62;
$#@60;input type="submit" name="Submit" value="讓我們開始吧" class="test1"$#@62;
$#@60;/div$#@62;
$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;/table$#@62;
$#@60;/form$#@62;
$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;tr bordercolor="#FFFFFF"$#@62;
$#@60;td height="20"$#@62;備注:由於使用了多個搜索引擎檢索,所以系統輸出的時間較長,請耐心等
待... ...$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;tr bordercolor="#FFFFFF"$#@62;
$#@60;td height="20"$#@62;
$#@60;div align="center"$#@62;建議使用 IE 5.x 800*600訪問 ASPCN.COM 版權保留(2000-2001)
$#@60;font size="2"$#@62;©$#@60;/font$#@62;$#@60;/div$#@62;
$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;/table$#@62;
$#@60;/body$#@62;
$#@60;/html$#@62;
$#@60;!--
頁面代碼顯示結束數據處理代碼顯示
--$#@62;
$#@60;%else
Server.ScriptTimeout = 100’設置腳本時間,由於系統輸出時間較長所以必須修改腳本代碼執行時間
Set http = Server.CreateObject("ASPHTTP.Conn")’連結組件
keyword=request.form("keyWord")’取得搜索關鍵字
if request.form("yeah")="yeah" then’判斷是否選擇使用yeah搜索引擎
http.Url = "http://search.163.com/cgi-bin/search/engine/search.fcgi?key="&keyword’處理搜索地址
http.RequestMethod = "GET"’設置取得數據方式"GET,取得數據"
response.write http.geturl’輸出搜索結果
end if
’以下代碼請參考上例的說明,恕不羅嗦
’使用yahoo
if request.form("yahoo")="yahoo" then
http.Url = "http://google.yahoo.com/bin/query_gb?p="&keyword
http.RequestMethod = "GET"
response.write http.geturl
end if
’使用sohu
if request.form("sohu")="sohu" then
http.Url
="http://search.sohu.com/cgi-bin/search_main.cgi?txt_keyword="&keyword&"&page_index=0&
fuzzy=0&catagory=main"
http.RequestMethod = "GET"
response.write http.geturl
end if
’使用goyoyo
if request.form("goyoyo")="goyoyo" then
http.Url ="http://www.goyoyo.com.cn/gyy/query?dbs=guidedbs&code=GB&query="&keyword
http.RequestMethod = "GET"
response.write http.geturl
end if
set http=nothing
end if
’提交數據處理結束