使用Google的Web Service

來源:互聯網
上載者:User
google|web 一、簡介
Google搜尋引擎提供了基於SOAP的Web Service。這意味著不同的開發語言、開發環境都能夠使用這種服務,另外,Google為了簡化Java程式員的開發,它還提供了一套Java API介面,用於訪問Web Serivce,這使得開發一套支援Google搜尋功能的程式變得十分容易。開發人員可以將Google的搜尋功能嵌入到他們的應用程式當中。本文將介紹如何使用這些Java API,以及如何使用google的Web Service。
目前,Google的API還是處於Beta測試階段,因此,在API的使用上還有一些限制。例如,使用這些API需要申請一個帳號。對於免費申請的帳號,為了防止開發人員不正當的使用,限制每個帳號、每天最多隻能查詢1000次。目前,Google還沒有提出正式的運營模式和收費方式。
Google API目前主要提供三種服務,分別如下:
1)搜尋服務。使用者提交一個搜尋內容請求,Google伺服器將尋找超過20億的網頁內容,並且將滿足使用者需求的目標返回給使用者,一般來說這種處理只需要幾秒的時間。
2)快取服務(Cache)。使用者提交一個URL,Google伺服器將返回搜尋器訪問該URL的最新記錄。這樣,使用者很容易複用Google的搜尋成果。
3)拼字檢查。該功能用於檢查使用者的查詢請求是否有效。使用者提交一個檢查內容,Google伺服器將返回有效、最接近該內容的查詢請求,返回的查詢請求將符合Google的查詢規則。

二、相關準備工作
為了開發基於Java的程式,我們需要作如下準備工作。
1)建立Java開發環境,Java SDK 1.3.1 或更新的版本。相關地址http:.//java.sun.com/J2SE
2)下載Google API的Jar檔案,Googleapi.jar。開發人員可以到http://www.google.com/apis下載。
3)申請Google訪問帳號,目前Google支援免費申請的方式,使用者需要使用一個email帳號來擷取新帳號。注意,目前免費帳號支援每天1000條的最大查詢量。申請地址:http://www.google.com/apis。
4)(可選) 如果使用者需要通過Java程式直接發送SOAP請求,開發人員需要下載相關的Java 軟體包,JAXM。下載地址:http://java.sun.com/xml

三、SOAP的使用
Google提供了基於SOAP的Web Service,因此使用者可以向Google伺服器提交SOAP的查詢請求,而後Google伺服器將處理這些請求,並返回SOAP格式的查詢結果。以下就是一個查詢請求和查詢結果。
查詢:例如,有一個查詢請求,請求類型為搜尋,查詢的內容為“world cup”,帳號為“123456789”,如下為該查詢的一個例子。
<?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">123456789</key>
<q xsi:type="xsd:string">"World Cup"</q>
<start xsi:type="xsd:int">0</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>
查詢結果:如果我們執行以上查詢,可以得到如下的查詢結果。其中,查詢結果總共有約2660000記錄,使用時間為0.125012秒。Item標記代表一條查詢結果,在第一條查詢結果中,網站的URL為http://www.fifaworldcup.com。本例子僅僅列舉了一條查詢結果。

<?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:doGoogleSearchResponse
xmlns:ns1="urn:GoogleSearch"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xsi:type="ns1:GoogleSearchResult">
<documentFiltering xsi:type="xsd:boolean">false</documentFiltering>
<estimatedTotalResultsCount xsi:type="xsd:int">
2660000</estimatedTotalResultsCount>
<directoryCategories
xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:Array"
ns2:arrayType="ns1:DirectoryCategory[0]">
</directoryCategories>
<searchTime xsi:type="xsd:double">0.125012</searchTime>
<resultElements
xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:Array" ns3:arrayType="ns1:ResultElement[10]">

<item xsi:type="ns1:ResultElement">
<cachedSize xsi:type="xsd:string">10k</cachedSize>
<hostName xsi:type="xsd:string"/>
<snippet xsi:type="xsd:string"></snippet>
<directoryCategory xsi:type="ns1:DirectoryCategory">
<specialEncoding xsi:type="xsd:string"/>
</directoryCategory>
<relatedInformationPresent xsi:type="xsd:boolean">
true
</relatedInformationPresent>
<summary xsi:type="xsd:string">
The official site from FIFA, made by Yahoo. Daily news updates and loads of relevant information.
</summary>
<URL xsi:type="xsd:string">
http://www.fifaworldcup.com
</URL>
<title xsi:type="xsd:string">
2002 FIFA <b>World</b>b>Cup</b>(tm)
</title>
</item>
...
</resultElements>
<endIndex xsi:type="xsd:int">10</endIndex>
<searchTips xsi:type="xsd:string"/>
<searchComments xsi:type="xsd:string"/>
<startIndex xsi:type="xsd:int">1</startIndex>
<estimateIsExact xsi:type="xsd:boolean">false</estimateIsExact>
<searchQuery xsi:type="xsd:string">
"science fiction"
</searchQuery>
</return>
</ns1:doGoogleSearchResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


四、使用Google API
Google為了提高開發人員的開發效率,提供了一套基於Java的API,用於直接存取Google伺服器。該API封裝了Google的Web Service,使用起來比Web Service更加方便。該API 包主要包括如下幾個類:
GoogleSearch :該類封裝了對於Google伺服器的訪問,支援搜尋和緩衝(cache)功能。
GoogleSearchDirectoryCategory :表示Google中的一個分類目錄
GoogleSearchFault :該類為Exception的一個子類,用於表示API使用的錯誤。
GoogleSearchResult :該類封裝了搜尋的結果。
GoogleSearchResultElement:該類表示搜尋結果中的每一條記錄。

如下是一個例子的原始碼,用於一個簡單查詢,查詢請求為”world Cup”,查詢的帳號為”123456789”。該例子將把查詢結果列印出來。如果使用者需要近一步解析查詢結果,可以使用GoogleSearchResult和GoogleSearchResultElement類。

import com.google.soap.search.*;
import java.io.*;

public class GoogleAPITest {

public static void main(String[] args) {

String clientKey="123456789";
String query="Word Cup";
// Create a Google Search object, set our authorization key
GoogleSearch s = new GoogleSearch();
s.setKey(clientKey);
try {
s.setQueryString(query);
GoogleSearchResult r = s.doSearch();
System.out.println("Google Search Results:"+t.toString());
} catch (GoogleSearchFault f) {
System.out.println("The call to the Google Web APIs failed:"+f.toString());
}
}
}

五、總結
Google搜尋引擎提供了搜尋、緩衝和拼字簡易功能,通過Web Service可以在不同的平台、不同的語言使用,為了簡化SOAP的開發,Google還提供了封裝了SOAP服務的Java API,這也大大提高了Java程式員的開發效率。隨著搜尋內容、形式的豐富,更多的開發人員可以將這種技術運用在自己應用程式中,擴充應用程度的功能。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。