htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。这个没有界面的浏览器,运行速度也是非常迅速的。

相关文件下载地址:

http://sourceforge.net/projects/htmlunit/files/

http://jaist.dl.sourceforge.net/project/htmlunit/htmlunit/2.15/htmlunit-2.15-bin.zip

我的需求是使用百度的高级新闻搜索,抓取指定站点新闻

手动搜索的设置如图所示

package com.html580;

import java.io.IOException;

import java.net.MalformedURLException;

import java.util.List;

import com.gargoylesoftware.htmlunit.ElementNotFoundException;

import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;

import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlForm;

import com.gargoylesoftware.htmlunit.html.HtmlHiddenInput;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

import com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput;

import com.gargoylesoftware.htmlunit.html.HtmlSelect;

import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;

import com.gargoylesoftware.htmlunit.html.HtmlTextInput;

/**

* @description 抓取百度搜索结果

* @author html580

* @site http://www.html580.com

* @version 2014-7-23

*/

public class BaiduSpider {

public static void main(String[] args) {

try {

final WebClient webclient = new WebClient();

final HtmlPage htmlpage = webclient.getPage("http://www.baidu.com/gaoji/advanced.html");

//搜索按钮

final HtmlForm form = htmlpage.getFormByName("f1");

final HtmlSubmitInput button = form.getInputByValue("百度一下");

//搜索结果-关键词

final HtmlTextInput textField = form.getInputByName("q1");

textField.setValueAttribute("HTML我帮您");

//分页条数

final HtmlSelect htmlSelet=form.getSelectByName("rn");

htmlSelet.setDefaultValue("10");

//网页的时间

final HtmlSelect htmlSeletlm=form.getSelectByName("rn");

htmlSeletlm.setDefaultValue("0");

//语言

final List radioButtonCts = form.getRadioButtonsByName("ct");

radioButtonCts.get(0).setChecked(true);

radioButtonCts.get(1).setChecked(false);

radioButtonCts.get(2).setChecked(false);

//文档格式

final HtmlSelect htmlSeletft=form.getSelectByName("ft");

htmlSeletft.setDefaultValue("");

//关键词位置

final List radioButtonq5s = form.getRadioButtonsByName("q5");

radioButtonq5s.get(0).setChecked(true);

radioButtonq5s.get(1).setChecked(false);

radioButtonq5s.get(2).setChecked(false);

//站内搜索 限定要搜索指定的网站

final HtmlTextInput htmlTextInputq6 = form.getInputByName("q6");

htmlTextInputq6.setDefaultValue("html580.com");

//隐藏值

final HtmlHiddenInput hiddenInputtn = form.getInputByName("tn");

hiddenInputtn.setDefaultValue("baiduadv");

final HtmlPage page2 = button.click();

String result = page2.asXml();

System.out.println(result);

webclient.closeAllWindows();

} catch (FailingHttpStatusCodeException e) {

e.printStackTrace();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (ElementNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

java抓取百度搜索结果_java实现抓取百度对某站点搜索结果相关推荐

  1. java爬虫抓取网页数据论坛_Java爬虫抓取网页

    Java爬虫抓取网页原作者:hebedich  原文链接 下面直接贴代码: import java.io.BufferedReader; import java.io.InputStreamReade ...

  2. java鼠标点击暂停程序_java – LWJGL抓取鼠标 – 如果应用程序挂起或使用抓取的鼠标点击断点时调试...

    到目前为止,我已找到5个解决此问题的方法: >根据您的IDE和操作系统,这可能会也可能不起作用 – 如果您能够切换到IDE窗口,您可以尝试使用键盘快捷键暂停执行,然后评估表达式以取消鼠标.在这种 ...

  3. JAVA取钱多线程实验_JAVA多线程----用--取钱问题2

    在该示例代码中,TestAccount类是测试类,主要实现创建帐户Account类的对象,以及启动学生线程StudentThread和启动家长线程GenearchThread.在StudentThre ...

  4. java里面取余什么意思_java中%是取余运算符。

    [单选题] [单选题] [判断题]Hadoop存储系统HDFS的文件是分块存储,每个文件块默认大小为32MB [单选题]I think I am old enough and strong enoug ...

  5. java 取余运算 小数_java - 神奇的取余运算

    关于-10%-3=-1的问题 今天做了一道题,题目是这样的: 一下代码运行后输出结果是: int a=-10,b=-3; System.out.print(a%b); A.-1 B.2 C.-1 D. ...

  6. java爬虫隐藏表单提交_java爬虫--jsoup简单的表单抓取案例

    分析需求: 某农产品网站的农产品价格抓取 页面展示如上: 标签展示如上: 分析发现每日价格行情包括了蔬菜,水果,肉等所有的信息,所以直接抓每日行情的内容就可以实现抓取全部数据. 软件环境:eclips ...

  7. python百度贴吧怎么爬取最早的帖子_【Python爬虫教学】百度篇·手把手教你抓取百度贴吧任意贴吧指定范围页数内的源代码...

    开门见山. 懒癌一犯,能拖一天是一天. 好了,亲爱的小伙伴们,我又回来了!今天带来的是抓取输入的任意贴吧,抓取指定范围页数内的源代码. 工具: 依旧是 PyCharm 和 Google 浏览器,pyt ...

  8. 爬虫 网站服务器瘫痪,如何解决搜索爬虫高频次抓取导致服务器崩溃的问题

    如何解决搜索爬虫高频次抓取导致服务器崩溃的问题 首先声明一点,如果网站能够承受爬虫的高频次访问,那是一件好事,这样有利于网站页面收录,提升网站来自搜索的访问量.但一旦承受不了,我们可以进行如下的操作. ...

  9. 百度爬虫:如何提高百度蜘蛛对网站的抓取量

    百度爬虫跟百度蜘蛛其实是一回事,百度蜘蛛在抓取网页信息后,会通过临时数据库进行处理,处理后的内容会被分门别类的收到索引库,等用户搜索相关关键词的时候才会在搜索结果页展现出来. 如何提高百度蜘蛛对网站的 ...

最新文章

  1. numpy.eye详解
  2. cad怎么调出科创易达绿化_【每日问答26】如何识别CAD图纸dwg格式版本?(内含往期)...
  3. python中5个json库的速度对比,你猜对了吗
  4. 字体对话框java实验_Java Web安全 || Java基础 sun.misc.Unsafe
  5. ejb 示例 2018_EJB钝化和激活示例
  6. 二、搭建Apache服务器 模板引擎
  7. 捕获和抛出异常(Ctrl+Alt+T)
  8. rx java定时循环_Rxjava定时器异常循环
  9. iText5报表_页眉与页脚
  10. cloud-api-commons抽取公共类
  11. RHEL6___构建基于vsftd的YUM源服务器
  12. Python实现蒙特卡罗方法仿真模拟求解圆周率Pi值
  13. sitemesh 使用整理(入门)
  14. 从终端直接下载cuDNN
  15. 网络聊天室Java群聊私聊_Java Spring + Spring MVC + Mybatis WebSocket实现网络聊天室(群聊+私聊)...
  16. 除了秀米,微信排版还有什么好用的? ---短网址
  17. 成为管理层必会的技能之一!利用Python打造一款员工管理系统~
  18. Matlab Bitwise Operator模块
  19. “知识共享”国际许可协议4.0版本
  20. 用R语言画相关性矩阵,带P值和*号

热门文章

  1. JavaScript 编码规范大全-Eslint(持续更新,欢迎关注点赞加评论)
  2. U-Boot>WebHome翻译
  3. 解决:SpringBoot 搭建聚合项目 报 “程序包XXX不存在”
  4. Lua重回TOP 20,TIOBE 3月编程语言排行榜出炉
  5. Apache 首位华人董事吴晟谈开源:我对中国开源短期内是消极的
  6. 英特尔发布全新高性能显卡品牌Arc,首款显卡将于 2022 年上市
  7. 华为:今年至少 3 亿台设备使用鸿蒙;增长 7%,互联网人薪资报告出炉;英特尔侵犯芯片专利被判赔偿 22 亿美元 | 极客头条...
  8. 腾讯看点多维实时分析系统架构大曝光!
  9. 视频内容理解核心技术解密:Partial re-ID 在成片体检中的技术实践
  10. 分布式系统设计理念为何这么难学?