`

在Java中检索Google的搜索结果

阅读更多

客户端的Javascript:

<script language="javascript">
var theURL = "/examples/servlet/MyGoogleSearchServlet?search=";
var http = getHTTPObject();

function handleHttpResponse() {
if (http.readyState == 4) {
    GoogleSearchResults.innerHTML = http.responseText;
}
}

function updateGoogleResults(formElement) {
var searchQuery = document.forms[0].elements[formElement].value;
http.open("GET", theURL + escape(searchQuery), true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}

function getHTTPObject() {
var xmlhttp;
try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
     try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (E) {
        xmlhttp = false;
     }
}

if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
     xmlhttp = new XMLHttpRequest();
    } catch (e) {
     xmlhttp = false;
    }
}

return xmlhttp;
}
</script>

__________________________________________________________________________

服务器端的:MyGoogleSearchServlet

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Search Google.
*
* @author Jose Sandoval
*/
public class MyGoogleSearchServlet extends HttpServlet {
        /**
         * Do get.
         *
         * @param request HttpServletRequest
         * @param response HttpServletResponse
         * @throws ServletException, IOExeption
         */
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                PrintWriter out = response.getWriter();
                StringBuffer resultBuffer = new StringBuffer();
                ArrayList results = MyGoogleSearch.doSearch(request.getParameter("search"));
                SearchResultBean resultBean = null;
                
                for (int i = 0; i<results.size(); i++) {
                        resultBean = (SearchResultBean) results.get(i);
                        resultBuffer.append("<a href=").append(resultBean.getURL()).append(">").append(resultBean.getTitle()).append("</a>");
                        resultBuffer.append("<br>");
                        resultBuffer.append(resultBean.getSnippet());
                        resultBuffer.append("<br>").append("<br>");
                }
                
                response.setContentType("text/html");
                response.setHeader("Pragma", "no-cache");
                response.setHeader("Expires", "0");
                response.setHeader("Cache-Control", "no-store");
                
                out.print(resultBuffer.toString());
                out.close();
        }
}

__________________________________________________________________________

服务器端的:MyGoogleSearch

import java.io.IOException;
import java.util.ArrayList;

import com.google.soap.search.GoogleSearch;
import com.google.soap.search.GoogleSearchFault;
import com.google.soap.search.GoogleSearchResult;
import com.google.soap.search.GoogleSearchResultElement;

/**
* GoogleSearch.
*
* @author Jose Sandoval
*/
public class MyGoogleSearch {
        private static String CLIENT_KEY = "YOU_HAVE_TO_GET_YOUR_OWN_KEY_FROM_GOOGLE";

        /**
         * Search Google.
         *
         * @param queryString String
         * @return ArrayList Contains SimpleSearchResult
         * @throws IOException
         */
        public static ArrayList doSearch(String queryString) throws IOException {
                ArrayList searchResults = new ArrayList();
                GoogleSearch search = new GoogleSearch();
                search.setKey(CLIENT_KEY);
                
                try {
                        search.setQueryString(queryString.trim());
                        GoogleSearchResult results = search.doSearch();
                        GoogleSearchResultElement[] resultElements = results.getResultElements();
                        
                        for (int i = 0; i<resultElements.length; i++) {
                                searchResults.add(new SearchResultBean(resultElements[i].getTitle(), resultElements[i].getURL(), resultElements[i].getSnippet()));
                        }
                } catch (GoogleSearchFault f) {
                        throw new IOException("The call to the Google Web APIs failed: " + f.getMessage());
                } catch (Exception e) {
                        throw new IOException("Thread Problem.");
                }
                
                return searchResults;
        }
}

__________________________________________________________________________

返回搜索结果的Bean:SearchResultBean

/**
* Result's Bean.
*
* @author Jose Sandoval
*/
public class SearchResultBean {
    private String title;
    private String URL;
    private String snippet;
    
    public SearchResultBean(String title, String URL, String summary) {
                super();
                this.title = title;
                this.URL = URL;
                this.snippet = summary;
        }

        public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
    
    public String getURL() {
        return URL;
    }
    
    public void setURL(String url) {
        URL = url;
    }

    public String getSnippet() {
        return snippet;
    }
        
    public void setSnippet(String summary) {
        this.snippet = summary;
    }
}

分享到:
评论

相关推荐

    模拟Google搜索 JSP java

    在模拟Google搜索的过程中,JSP可能会被用来渲染搜索表单,接收用户的查询输入,并展示搜索结果。 2. **Servlet**:Servlet是Java中处理HTTP请求的服务器端组件。在本项目中,Servlet将接收由JSP发送的用户搜索请求...

    java文档检索系统ir system

    国外的研究在信息检索领域有着丰富的成果,例如谷歌的PageRank算法和Apache Lucene/Solr等开源搜索引擎库,都对全球的文档检索系统发展产生了深远影响。 综上所述,Java文档检索系统IR System是一个涵盖信息检索...

    java版本的谷歌的图片检索功能

    本程序基于Java编程语言,实现了谷歌的图片检索算法,允许用户通过提取图片的特征来进行高效的相似图搜索。 1. **图片特征提取** 在图片检索中,关键步骤是提取图片的特征。谷歌的图片检索技术可能使用了诸如SIFT...

    Java 模仿谷歌搜索框中输入下拉提示(自动补全)功能 源代码

    模仿谷歌搜索框中输入下拉提示(自动补全)功能,访问数据库调去数据,内有数据库SQL文件,数据库JDBC连接方式,记得填写正确的username="" password="" 在tomcat 的lib文件夹中 中导入mysql 驱动包【mysql包文件夹中有...

    仿GOOGLE搜索下拉框的JAVA项目,struts2+hibernate+mysql

    在本项目中,Struts2负责接收用户在搜索框输入的关键词,并通过Action类处理这些请求,然后返回相应的搜索建议。 Hibernate是Java领域中的一个强大的ORM框架,它允许开发者用面向对象的方式来操作数据库,避免了SQL...

    java 类似于google搜索提示的功能,文本框输入提示

    在Java编程中,实现类似于Google搜索提示的功能,主要涉及到关键词自动补全(Autocomplete)或称为建议(Suggestion)功能。这种功能广泛应用于各种输入框,例如搜索引擎、文本编辑器和命令行工具等,能够提高用户的...

    为网站添加搜索功能类似于在google里搜索自己的网站(java语言版)

    【标题】:为网站添加搜索功能类似于在Google里搜索自己...总的来说,通过这个项目,你将学习到如何利用Java和相关工具构建一个内部搜索引擎,为你的网站提供高效且定制化的搜索体验,类似于用户在Google中搜索的体验。

    用Java实现的模糊搜索模块源码

    首先,我们需要理解Java在模糊搜索中的作用。Java作为一种广泛使用的编程语言,具有丰富的字符串处理和数据操作功能,适合构建这样的系统。这个模糊搜索模块可能基于Java的字符串比较、正则表达式以及可能的第三方库...

    java编写的搜索引擎

    首先,**数据结构**在搜索引擎中扮演着核心角色。搜索引擎通常使用倒排索引来快速定位文档中包含特定关键词的位置。倒排索引由词典(一个词汇表,包含了所有出现过的单词)和倒排文件(记录每个单词在哪些文档中出现...

    java仿google模糊搜索框jsp的tag标签通用查询功能

    3. **数据检索**:根据匹配结果,从数据库或其他数据源中检索相关的搜索结果。这可能涉及SQL查询优化,以提高搜索效率。 4. **响应构建**:服务器将搜索结果封装为JSON或其他格式,返回给前端。 5. **前端展示**:...

    数据库算法及Google搜索引擎算法的秘密.rar_algorithm_java search engine_搜索_数据库搜索_

    Google的PageRank算法是其搜索技术的基础,它评估网页的重要性,将最相关的网页优先显示在搜索结果中。PageRank基于网络链接结构,认为被更多高质量网页链接的页面更有可能是权威和有用的。随着时间的推移,Google...

    JAVA基于网络爬虫的搜索引擎设计与实现.pdf

    * 网络爬虫在搜索引擎中的作用是非常重要的,因为它们可以快速地爬取和处理大量的网络数据。 * 网络爬虫的设计要求包括高效的爬取策略、快速的数据处理和存储、可靠的网络连接等。 三、Java语言和JBuilder工具 * ...

    文献检索秘籍 文献检索秘籍

    如果知道一篇特定文章的名称,可以在Google中输入文章名,并加上"[PDF]"以限定搜索结果为PDF格式,从而更容易找到文章的全文。例如:“[PDF] + ASurveyofCorporate Governance”。 - **利用专业数据库**:除了...

    仿google自动补全 检索建议

    标题中的“仿google自动补全检索建议”是指创建一个类似谷歌搜索框的自动补全功能,它能够在用户输入关键词时,提供与输入内容相关的搜索建议。这个功能在提高用户体验、加快搜索速度方面起到了重要作用。 首先,...

    Java实现Google的S2算法工具类Google S2Google S2Google S2

    Google S2 经纬度 转 CellId 经纬度 转 cellToken CellId 转 经纬度 判断当前cellId的level * 获取任意形状内所有S2块 * 可以用于区域内目标检索,根据cellid建立索引,查询区域内cellid in (list)的区域 S2计算点...

    java的中文Google版文档,大家一起学习

    5. **.chw文件**:"chw"可能是CHM文件的关联索引文件,用于快速定位和检索CHM文件中的内容。 6. **打开文档方法.docx**:这是一个Microsoft Word文档,很可能包含了如何在Windows系统中打开和使用CHM文件的步骤,...

    搜索引擎 谷歌 百度 实例

    无论是谷歌还是百度,都鼓励网站提供有价值、原创且用户友好的内容,以提高在搜索结果中的排名。SEO策略包括关键词研究、元标签优化、内部链接构建、网站速度提升等,都是为了让搜索引擎更好地理解和评价网页。 总...

    JAVA源码Java搜索引擎Lucene

    索引文件中包含了关键字和文档的对应关系,使得在搜索时可以快速定位到相关文档。其索引结构设计巧妙,能够在保持高速检索的同时最小化磁盘空间的使用。 在文档处理方面,Lucene提供了多种文本分析工具,可以对文本...

    java Google地图

    在Java开发中,集成Google地图服务可以为应用程序提供强大的地理定位和地图展示功能。Google地图API是一套允许开发者在自己的网站或应用中嵌入交互式地图的服务。本项目重点是利用Java来调用Google地图的接口,实现...

    文献检索实验报告

    通过这样的文献检索,可以深入了解Java Web技术在实际应用中的挑战、发展趋势和具体实现方法,对于学习和研究Java Web技术的专业人士来说,这些资料提供了宝贵的参考和学习资源。而掌握有效的文献检索技巧,对于提升...

Global site tag (gtag.js) - Google Analytics