Google search in your site

Access to remote pages tutorial

Google allows at the moment and for learning porpoises to get access to their search engine and to get XML files with search results. In the script bellow this option is used to access that XML file and to extract from it the information we will latter display in our page (the way url, titles and snippet are extracted is a bit irregular).

This service from Google is for personal use and you must open a Google account to be able to use this service. They will provide you a Key you must include in the script . Extracting the same information from a regular google searchresults page is not legal.
 
 

Googlesearch.asp      Get code here
<html><head><title> Search</title></head>
<body bgcolor=ffffff>

<%
if request.querystring="" then 
 sendform()
else
 sendform()

' You must ask Google for a key
key = "00000000000000000000000000000000000

' The URL where the script is located
URL = "http://www.yourdomain/yourscript.asp" 
 

SoapText = "<?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/1999/XMLSchema-instance' xmlns:xsd='http://www.w3.org/1999/XMLSchema'><SOAP-ENV:Body><ns1:doGoogleSearch xmlns:ns1='urn:GoogleSearch' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><key xsi:type='xsd:string'>" & key &"</key><q xsi:type='xsd:string'>" & request.querystring("keywords") & "</q><start xsi:type='xsd:int'>" & request.querystring("h") & "</start><maxResults xsi:type='xsd:int'>10</maxResults><filter xsi:type='xsd:boolean'>true</filter><restrict xsi:type='xsd:string'></restrict><safeSearch xsi:type='xsd:boolean'>false</safeSearch><lr xsi:type='xsd:string'></lr> <ie xsi:type='xsd:string'>latin1</ie><oe xsi:type='xsd:string'>latin1</oe></ns1:doGoogleSearch></SOAP-ENV:Body></SOAP-ENV:Envelope>"

Googleurl = "http://api.google.com/search/beta2" 

Set objXML = CreateObject("Microsoft.XMLHTTP")
objXML.open "POST",Googleurl,"False"
objXML.setRequestHeader "Man", "POST" " " Googleurl " HTTP/1.1" 
objXML.setRequestHeader "MessageType", "CALL" 
objXML.setRequestHeader "Content-Type", "text/xml" 
objXML.send SoapText 

ResponsePage = objXML.responseText
Set objXML = Nothing

ResponsePage=Replace(ResponsePage," xsi:type=" & CHR(34) & "xsd:string" & CHR(34),"")
ResponsePage=Replace(ResponsePage,"&lt;b&gt;","")
ResponsePage=Replace(ResponsePage,"&lt;/b&gt;","")
ResponsePage=Replace(ResponsePage,"&lt;br&gt;","<br>")

EstimatedResults=left(ResponsePage,inStr(ResponsePage,"</estimatedTotalResultsCount>")-1)
EstimatedResults=right(EstimatedResults,len (EstimatedResults)-inStr(EstimatedResults,"<estimatedTotalResultsCount")-46)
 Response.write ("Estimated results for <b>" & q & "</b>: " & EstimatedResults & " &nbsp; <A href=" & request.servervariables("URL") & "?keywords=" & request.querystring("keywords") & "&h=" & request.querystring("h")) 10 & "><font size=2>next 10</font></a><HR>")

public namearray
namearray=split (ResponsePage,"<item xsi:type=" & CHR(34) & "ns1:ResultElement" & CHR(34) & ">")
max=ubound(namearray)-1

for i=1 to max

theurl=left(namearray(i),inStr(namearray(i),"</URL>")-1)
theurl=right(theurl,len (theurl)-instr(theurl,"<URL>")-4)

thetitle=left(namearray(i),inStr(namearray(i),"</title>")-1)
thetitle=right(thetitle,len (thetitle)-inStr(thetitle,"<title>")-6)
if thetitle="" then
thetitle="No Title"
end if

AA=inStr(namearray(i),"</snippet>")-1
thedescription=left(namearray(i),AA)
thedescription=right(thedescription,len (thedescription)-inStr(thedescription,"<snippet>")-8)

Searchresults=Searchresults & "<p><a href=" & theurl & ">" & thetitle & "</a><br>" & thedescription & "<br><font size=2>" & theurl & "</font>"

next
 

Response.write(Searchresults)

end if
 %>
<% Sub SendForm() %>

<form method=get action=<% =request.servervariables("URL") %>>
Find Keywords <input type=text name=keywords size=15>
 <input type=hidden name=h value=0> <input type=submit value="Google Search">
</form>

<% end sub%>
<HR>
Script provided by <A HREF=http://www.asptutorial.info>AspTutorial.info</a>

</body></html>


AspTutorial.info.