`
Anatorian
  • 浏览: 61437 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用htmlparser解析google搜索结果页面里的url

    博客分类:
  • java
阅读更多

htmlparser是一个非常棒的html页面解析器,它自带的filterbuilder很不错。到sourceforge下载后,解压好就可以用了。运行安装目录下的bin里面的filterbuilder.bat就可打开filterbuilder,如下图(点击看大图):

htmlparser_filterbuilder

在窗口最底下的文本框里输入要parse的页面的url, 在Operation菜单里选择Fetch Page就会载入页面。左边的区域可以放置各种过滤器。先选中左边过滤器区域里的某个过滤器,再点击工具栏上要使用的过滤器,就会把过滤器加到之前选中的过滤器里面了。点击Operation菜单里的Excute Filter,就会把当前的过滤器应用到载入的页面了,新结果会显示在校窗口里。最后保存,就会得到一个java文件,里面包含了过滤html的代码。

我用这个工具做了一个从google搜索返回页面里取出搜索结果url 的方法,非常简单,代码如下:

    private List<string> getUrlsBySearchGoogle(String keywords, int start) 
                throws UnsupportedEncodingException {
        TagNameFilter filter0 = new TagNameFilter ();
        filter0.setName ("A");
        HasAttributeFilter filter1 = new HasAttributeFilter ();
        filter1.setAttributeName ("class");
        filter1.setAttributeValue ("l");
        NodeFilter[] array0 = new NodeFilter[2];
        array0[0] = filter0;
        array0[1] = filter1;
        AndFilter filter2 = new AndFilter ();
        filter2.setPredicates (array0);
        NodeFilter[] array1 = new NodeFilter[1];
        array1[0] = filter2;
        FilterBean bean = new FilterBean ();
        bean.setFilters (array1);
 
        bean.setURL("http://www.google.com/search?complete=1&amp;start="+start+"&amp;q=" 
                + URLEncoder.encode(keywords, "UTF-8"));
        NodeList nodes = bean.getNodes();
        List<string> result = new ArrayList<string>();
        for(int i = 0; i &lt; nodes.size(); i++) {
            LinkTag link = (LinkTag) nodes.elementAt(i);
            result.add(link.getLink());
        }
        return result;
    }
分享到:
评论
2 楼 water84222 2008-04-28  
因为,没有配置java_home,或者可以再cmd下运行。
1 楼 water84222 2008-04-25  
为什么,我下载后的只有filterbuilder.cmd,而且双击后,没有任何反应?

相关推荐

    java开源包8

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包1

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包11

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包2

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包3

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包6

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包5

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包10

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包4

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包7

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包9

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包101

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    Java资源包01

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    JAVA上百实例源码以及开源项目

    得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...

    JAVA上百实例源码以及开源项目源代码

    得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...

Global site tag (gtag.js) - Google Analytics