`

Google搜索结果API被封之后的解决之道

    博客分类:
  • java
阅读更多
    前段时间,由于开发需要使用google的搜索结果,结果怎么弄都报错连接超时,结果后来去官方去查看究竟,结果坑爹呀,google公司在2010年的11月1日就关闭了Webservice基于Soap的API,只提供Ajax访问。下面的这个是解决这个困境的方法:

package com.zzs.search;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class GoogleSearchTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		URL url = null;
		String keywords = "abc";
		String start = "1";
		try {
			url = new URL(
					"http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=zh-CN&rsz=large&q="
							+ keywords + "&start=" + start);
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		}
		URLConnection connection = null;
		StringBuilder builder = new StringBuilder();
		String builderStr = "";
		String line;
		BufferedReader reader = null;
		try {
			// 发送请求,读取查询结果
			connection = url.openConnection();
			// connection.addRequestProperty("Referer",
			// "http://www.mysite.com/index.html");
			reader = new BufferedReader(new InputStreamReader(connection
					.getInputStream(), "utf-8"));
			while ((line = reader.readLine()) != null) {
				builder.append(line);
			}
			builderStr = builder.toString();
			System.out.println(builderStr);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		/*
		 * q q=Paris%20Hilton 该参数提供了传递到搜索器的查询或搜索表达式。 
		 * v v=1.0    此参数可提供协议版本号。目前唯一有效的值为 1.0。 
		 * rsz? rsz=small 该可选参数提供了应用程序要接收的结果数。值 small表示较小的结果集大小或 4 个结果。值 large 表示较大的结果集大小或 8 个结果。如果没有提供此参数,将假定值为 small。
		 * hl? hl=fr 此可选参数提供了提出请求的应用程序的宿主语言。如果未提供此参数,系统将根据 Accept-Language http标头的值选择一个值。如果此标题未显示,将假定值为 en。 
		 * key? key=your-key 此可选参数提供了应用程序的密钥。如果指定了此参数 ,则此密钥必须是与您的网站(已通过传递的参考标头进行确认)关联的有效密钥。提供密钥的优点在于,我 们可以在您的应用程序出错时识别并联系您。如果没有密钥,我们仍会采取相同的适当措施,但是我们将无法联系您。强烈建议您最好提供一个密钥。
		 * start? start=4 该可选参数提供了第一个搜索结果的起始索引。每个成功的响应都包含了一个 cursor 对象(请参见下文),该对象包括一个 pages 的数组。页面的 start 属性可以用作该参数的有效值。
		 */
	}

}

搜索结果如下:
{"responseData": {"results":[{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://abcnews.go.com/","url":"http://abcnews.go.com/","visibleUrl":"abcnews.go.com","cacheUrl":"","title":"\u003cb\u003eABC\u003c/b\u003e News","titleNoFormatting":"ABC News","content":"ABCNews.com: Breaking News, Politics, World News, Good Morning America,   Exclusive Interviews."},{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://abc.go.com/watch","url":"http://abc.go.com/watch","visibleUrl":"abc.go.com","cacheUrl":"http://www.google.com/search?q\u003dcache:poVfr19iF9UJ:abc.go.com","title":"Watch Full Episodes - \u003cb\u003eABC\u003c/b\u003e","titleNoFormatting":"Watch Full Episodes - ABC","content":"Watch full episodes from your favorite \u003cb\u003eABC\u003c/b\u003e programs online. The official \u003cb\u003eABC\u003c/b\u003e \u003cb\u003e...\u003c/b\u003e"},{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://abc.go.com/shows/desperate-housewives","url":"http://abc.go.com/shows/desperate-housewives","visibleUrl":"abc.go.com","cacheUrl":"http://www.google.com/search?q\u003dcache:H0P7mX35mMQJ:abc.go.com","title":"Desperate Housewives: Watch Full Episodes for Free Online - \u003cb\u003eABC\u003c/b\u003e.com","titleNoFormatting":"Desperate Housewives: Watch Full Episodes for Free Online - ABC.com","content":"The official Desperate Housewivespage on \u003cb\u003eABC\u003c/b\u003e offers a deeper look at the hit \u003cb\u003e...\u003c/b\u003e"},{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://en.wikipedia.org/wiki/American_Broadcasting_Company","url":"http://en.wikipedia.org/wiki/American_Broadcasting_Company","visibleUrl":"en.wikipedia.org","cacheUrl":"http://www.google.com/search?q\u003dcache:DI7iYqHzygwJ:en.wikipedia.org","title":"\u003cb\u003eAmerican Broadcasting Company\u003c/b\u003e - Wikipedia, the free encyclopedia","titleNoFormatting":"American Broadcasting Company - Wikipedia, the free encyclopedia","content":"The \u003cb\u003eAmerican Broadcasting Company\u003c/b\u003e (\u003cb\u003eABC\u003c/b\u003e) is an American television network.   Created in 1943 from the former NBC Blue radio network, \u003cb\u003eABC\u003c/b\u003e is owned by The Walt   \u003cb\u003e...\u003c/b\u003e"},{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://twitter.com/abc","url":"http://twitter.com/abc","visibleUrl":"twitter.com","cacheUrl":"http://www.google.com/search?q\u003dcache:DHkYr_pKNK8J:twitter.com","title":"\u003cb\u003eABC\u003c/b\u003e News (\u003cb\u003eABC\u003c/b\u003e) on Twitter","titleNoFormatting":"ABC News (ABC) on Twitter","content":"\u003cb\u003eABC\u003c/b\u003e News (\u003cb\u003eABC\u003c/b\u003e) is on Twitter. Sign up for Twitter to follow \u003cb\u003eABC\u003c/b\u003e News (\u003cb\u003eABC\u003c/b\u003e) and   get their latest updates."},{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://www.abc.org/","url":"http://www.abc.org/","visibleUrl":"www.abc.org","cacheUrl":"http://www.google.com/search?q\u003dcache:hoLnleEslnwJ:www.abc.org","title":"\u003cb\u003eABC\u003c/b\u003e - Associated Builders \u0026amp; Contractors, Inc - Home","titleNoFormatting":"ABC - Associated Builders \u0026amp; Contractors, Inc - Home","content":"National trade association representing merit shop contractors, subcontractors,   material suppliers and related firms in the United States."},{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://pingpong-abc.sourceforge.net/","url":"http://pingpong-abc.sourceforge.net/","visibleUrl":"pingpong-abc.sourceforge.net","cacheUrl":"http://www.google.com/search?q\u003dcache:OIiCTLrardcJ:pingpong-abc.sourceforge.net","title":"\u003cb\u003eABC\u003c/b\u003e [Yet \u003cb\u003eAnother Bittorrent Client\u003c/b\u003e]","titleNoFormatting":"ABC [Yet Another Bittorrent Client]","content":"Forked from Bittornado, handles multiple torrents."},{"GsearchResultClass":"GwebSearch","unescapedUrl":"http://www.accessabc.com/","url":"http://www.accessabc.com/","visibleUrl":"www.accessabc.com","cacheUrl":"http://www.google.com/search?q\u003dcache:tcxxMtiqZFIJ:www.accessabc.com","title":"\u003cb\u003eAudit Bureau of Circulations\u003c/b\u003e","titleNoFormatting":"Audit Bureau of Circulations","content":"Non-profit association of advertisers, ad agencies and publishers. Provides   media audits, publisher statements, news bulletins, press and conference \u003cb\u003e...\u003c/b\u003e"}],"cursor":{"pages":[{"start":"0","label":1},{"start":"8","label":2},{"start":"16","label":3},{"start":"24","label":4},{"start":"32","label":5},{"start":"40","label":6},{"start":"48","label":7},{"start":"56","label":8}],"estimatedResultCount":"29000000","currentPageIndex":0,"moreResultsUrl":"http://www.google.com/search?oe\u003dutf8\u0026ie\u003dutf8\u0026source\u003duds\u0026start\u003d1\u0026hl\u003dzh-CN\u0026q\u003dabc"}}, "responseDetails": null, "responseStatus": 200}

从中能看出规律吧,自己写个解析程序就OK了

分享到:
评论
3 楼 zcyjava 2011-10-20  
这种方法取出来的结果数是29000000(读取estimatedResultCount),
如果从GOOGLE的页面点击按钮搜索出来的结果数是 686000000,为什么结果不想同啊?是不是GOOGLE进行限制啊!
2 楼 xiaoyangok 2011-08-25  
不知你有没发现,或者有其他更好方法?
1 楼 xiaoyangok 2011-08-25  
请求次数有限制!

相关推荐

    Jquery调用Google搜索API实现搜索引擎.rar

    Google Custom Search API允许开发者通过JSON格式获取搜索结果,然后在网页上展示。 2. **index.html**: 这是网页的结构文件,它定义了用户界面,包括搜索框、搜索按钮以及显示搜索结果的区域。HTML中会包含引用...

    百度、谷歌搜索引擎API.zip

    开发者需要创建一个Google Custom Search Engine并获取API密钥,然后通过HTTP请求向API发送查询,返回的JSON数据包含了搜索结果的相关信息,如标题、链接和摘要等。谷歌的API通常提供更高级的功能,如自定义排序、...

    最新谷歌离线版API(修改了谷歌禁用本地API功能)

    最新修改版的谷歌离线API已经移除了这个限制,让用户能够顺畅地在本地使用API,而不会被谷歌的警告或禁用提示所干扰。 【关键知识点】 1. **离线地图数据存储**:离线API需要预先下载地图数据,这些数据通常包括...

    Google搜索引擎API综合应用

    利用Google搜索引擎API,实现本地,指定网站等图片,文字等信息检索

    google200, 基于google custom search api的google搜索镜像.zip

    开发者可以通过解压并检查这些文件来理解项目的实现细节,包括如何设置和调用Google Custom Search API,以及如何处理和展示搜索结果。 在实际应用中,使用Google Custom Search API需要具备一定的编程基础,如...

    谷歌拼音输入法api

    谷歌拼音输入法API是谷歌为开发者提供的一种工具,允许他们集成谷歌拼音输入法的功能到自己的应用程序或网站中,提升用户在输入中文时的体验。这个API不仅提供了基本的拼音输入功能,还可能包括智能纠错、词语联想、...

    google api 自定义搜索引擎

    5. **搜索结果处理**:收到API响应后,开发者需要解析JSON数据,提取出搜索结果中的相关信息,如标题、链接、摘要等,然后在用户界面展示。 6. **网页渲染**:如果需要在网页上实现这个自定义搜索引擎,需要掌握...

    Google 搜索客户端 API For C_C++ 在 MFC 中的实现

    Google搜索客户端API是Google提供的一种服务,允许开发者通过编程方式与Google搜索引擎进行交互,获取搜索结果,而无需直接访问网页。这个API通常基于HTTP请求和JSON响应,使得开发者可以轻松地集成到各种应用中,...

    谷歌地图 离线api---最新

    谷歌地图 离线api

    google-search-api:一个简单的谷歌搜索 API

    谷歌搜索API 简单的谷歌搜索 API。 要求 使用 querystring query向端点发出一个简单的GET请求,如下例所示: curl https://googlesearch.herokuapp.com/api/search ? query=maru+the+cat 回复 带有title 、 blurb...

    google地图api文档

    google 地图 API 文档 Google 地图 API 是一款功能强大且广泛应用的 Web 服务,允许开发者在自己的网站中嵌入 Google 地图,添加丰富的功能和交互性,提供更好的用户体验。下面是 Google 地图 API 的基础知识点和...

    谷歌地图Google Map API V3中文开发文档

    谷歌地图 Google Map API V3 中文开发文档 谷歌地图 Google Map API V3 中文开发文档是 Google 公司提供的一种基于 Web 的地图应用程序接口,允许开发者在自己的网站或应用程序中嵌入谷歌地图,以提供地图检索、...

    官方google API

    谷歌API是Google为开发者提供的一系列接口,允许他们与Google的各种服务...然而,需要注意的是,Google AJAX Search API已在2015年被弃用,现在的开发可能需要转向Google Custom Search JSON API或其他更新的解决方案。

    商业编程-源码-Google搜索客户端API示例代码.zip

    在IT行业中,Google搜索客户端API是一个非常重要的工具,它允许开发者通过编程方式访问Google的搜索引擎,获取相关的搜索结果。这个压缩包"商业编程-源码-Google搜索客户端API示例代码.zip"显然包含了使用Google搜索...

    google离线地图API包 + 地图数据

    Google Map API V3是Google提供的一个JavaScript库,用于在网页上嵌入交互式地图。这个API提供了丰富的功能,如定位、路线规划、地图缩放和平移等。在这个压缩包中,包含了使用Google Map API V3来实现离线地图的...

    google的一个API接口:引用搜索结果.pdf

    标题中的“google的一个API接口:引用搜索结果.pdf”指的是Google提供的AJAX搜索API,这是一个用于在网页上实现动态、无需刷新页面的搜索功能的技术。这个API允许开发者通过JavaScript调用Google的搜索服务,获取并...

    利用Google AJAX Search API

    在Google AJAX Search API中,AJAX技术用于实现用户输入查询后即时显示搜索结果。 2. **API使用流程** 使用Google AJAX Search API时,首先需要在Google Developers Console注册项目,获取API密钥。然后在客户端...

    jdk api _googleAPI

    这些API允许开发者将Google的功能集成到自己的应用中,实现如地理位置服务、数据存储、搜索结果嵌入等功能。例如,Google Maps JavaScript API可以让开发者在网页上嵌入交互式地图,而Google Cloud Storage API则...

    googleAPI完整版下载

    谷歌地图API是Google提供的一项强大的服务,允许开发者在自己的应用程序中集成谷歌地图的功能,从而创建出具有地图展示、定位、导航等多种功能的应用。这个“googleAPI完整版下载”可能包含了完整的谷歌地图API文档...

    谷歌api和英国地址案例

    在IT行业中,谷歌API(Google Application Programming Interface)是开发者广泛使用的工具,用于集成谷歌的各种服务,如地图、搜索、翻译等。在这个“谷歌API和英国地址案例”中,我们将探讨如何利用谷歌API来处理...

Global site tag (gtag.js) - Google Analytics