美文网首页程序员
自动搜索维基百科和百度百科

自动搜索维基百科和百度百科

作者: OritimaHost | 来源:发表于2015-01-06 16:18 被阅读666次

目的


如果我想知道张艺谋是谁?我会去百度百科或维基百科搜索一下,那么百度百科或维基百科会返回张艺谋网页结果。如果批量的去操作这种,手动去搜索是很浪时间和人力的。于是,我就写了一个SearchWord程序。

在百科上搜索张艺谋

介绍程序原理


其实我们去在浏览器里搜索一个词条,然后点击一下“进入词条”,网页会返回一个页面,用百度百科举例如下:

搜索张艺谋结果页面

那么我们用程序来做这样一件事情,也是同样的道理。具体步骤如下:

  • 模拟一个虚拟浏览器(等同于我们电脑里安装的浏览器)
  • type 一个词条(等同于我们在搜索框里输入一个“张艺谋”)
  • 触发click事件(等同于我们在浏览器上点击“进入词条”)
  • 保存下返回的page页面(等同于我们看到张艺谋这个页面)

核心代码


模拟生成浏览器

准备htmlunit工具,模拟生成webclient,生成浏览器代码如下:

public static WebClient ConstructWebClient()
    {
        //set the Brower’s version 
        WebClient webClient = new WebClient(BrowserVersion.getDefault());
        // set Brower support javascript和 css
        webClient.getOptions().setJavaScriptEnabled(true);
        webClient.getOptions().setCssEnabled(false);
        webClient.setAjaxController(new NicelyResynchronizingAjaxController());
        // set Brower link time limit
        webClient.getOptions().setTimeout(120000);
        webClient.getOptions().setThrowExceptionOnScriptError(false);
        webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
        webClient.getOptions().setAppletEnabled(false);
        return webClient;
    }

type and click

 /**
             * Search the word on WIKI 
             */
            HtmlForm form = page.getForms().get(0);
            HtmlTextInput htmlTextInput = form.getInputByName("search");
            htmlTextInput.setValueAttribute(word);
            HtmlSubmitInput go = form.getInputByName("go");
            resultPage = go.dblClick();
/**
             * Enter the word on search 
             */
            HtmlForm form = page.getForms().get(0);
            HtmlTextInput htmlTextInput = form.getInputByName("word");
            htmlTextInput.setValueAttribute(word);
            HtmlButton button = (HtmlButton) page.getElementById("search");
            resultPage = button.click();

结束语


其实实现一个简单功能是很容易的,但是要结构化解析返回结果页面还是一件很费神的事情。

相关文章

  • 自动搜索维基百科和百度百科

    目的 如果我想知道张艺谋是谁?我会去百度百科或维基百科搜索一下,那么百度百科或维基百科会返回张艺谋网页结果。如果批...

  • 百度百科怎么样?

    文:@慢慢行走的玄子 昨天测试了百度百科和维基百科的收录,维基百科是机器的,百度百科需要人工审核,而且维基百科这边...

  • 【CLI】wget、curl背景知识

    参考文章 GNU Wget(GNU[^1]) wget 命令用法详解 维基百科Wget 百度百科curl 维基百科...

  • 信息淹没群体的自我救赎——《缺失的终结》

    当我们迷失在信息之中,知识安在?——T.S.艾略特 在“维基百科”、“百度百科”这类搜索问答网站创立以前,信息获取...

  • 网络协议

    参考: 互联网协议入门 百度百科 维基百科

  • 科研资料一网打尽,想拥有吗?

    虫部落是一个致力于搜索的社区,它集合了谷歌搜索、百度一下、必应搜索、精准搜索、维基百科等众多的搜索于一身,同时也整...

  • 值得装的 Windows 平台应用

    注: 软件介绍信息大多来自 百度百科、维基百科

  • 2020-04-21整理

    YACY搜索引擎 百度?搜狗?360?YACY! 维基百科YaCy是一个基于p2p的分布式开源免费的网页搜索引擎系...

  • 2020-01-07 Mini Habits 微习惯

    先说说这个作者吧, Stephen Guise 在百度、维基百科都找不到介绍,所有搜索引擎查找下来除了是购买他书的...

  • 科学(Science)

    (目前) 定义: 百度百科: 可检验的有关宇宙的知识 维基百科: Science(fromtheLatinword...

网友评论

    本文标题:自动搜索维基百科和百度百科

    本文链接:https://www.haomeiwen.com/subject/ipmtxttx.html