java抓取百度搜索结果_java实现抓取百度对某站点搜索结果
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实现抓取百度对某站点搜索结果相关推荐
- java爬虫抓取网页数据论坛_Java爬虫抓取网页
Java爬虫抓取网页原作者:hebedich 原文链接 下面直接贴代码: import java.io.BufferedReader; import java.io.InputStreamReade ...
- java鼠标点击暂停程序_java – LWJGL抓取鼠标 – 如果应用程序挂起或使用抓取的鼠标点击断点时调试...
到目前为止,我已找到5个解决此问题的方法: >根据您的IDE和操作系统,这可能会也可能不起作用 – 如果您能够切换到IDE窗口,您可以尝试使用键盘快捷键暂停执行,然后评估表达式以取消鼠标.在这种 ...
- JAVA取钱多线程实验_JAVA多线程----用--取钱问题2
在该示例代码中,TestAccount类是测试类,主要实现创建帐户Account类的对象,以及启动学生线程StudentThread和启动家长线程GenearchThread.在StudentThre ...
- java里面取余什么意思_java中%是取余运算符。
[单选题] [单选题] [判断题]Hadoop存储系统HDFS的文件是分块存储,每个文件块默认大小为32MB [单选题]I think I am old enough and strong enoug ...
- java 取余运算 小数_java - 神奇的取余运算
关于-10%-3=-1的问题 今天做了一道题,题目是这样的: 一下代码运行后输出结果是: int a=-10,b=-3; System.out.print(a%b); A.-1 B.2 C.-1 D. ...
- java爬虫隐藏表单提交_java爬虫--jsoup简单的表单抓取案例
分析需求: 某农产品网站的农产品价格抓取 页面展示如上: 标签展示如上: 分析发现每日价格行情包括了蔬菜,水果,肉等所有的信息,所以直接抓每日行情的内容就可以实现抓取全部数据. 软件环境:eclips ...
- python百度贴吧怎么爬取最早的帖子_【Python爬虫教学】百度篇·手把手教你抓取百度贴吧任意贴吧指定范围页数内的源代码...
开门见山. 懒癌一犯,能拖一天是一天. 好了,亲爱的小伙伴们,我又回来了!今天带来的是抓取输入的任意贴吧,抓取指定范围页数内的源代码. 工具: 依旧是 PyCharm 和 Google 浏览器,pyt ...
- 爬虫 网站服务器瘫痪,如何解决搜索爬虫高频次抓取导致服务器崩溃的问题
如何解决搜索爬虫高频次抓取导致服务器崩溃的问题 首先声明一点,如果网站能够承受爬虫的高频次访问,那是一件好事,这样有利于网站页面收录,提升网站来自搜索的访问量.但一旦承受不了,我们可以进行如下的操作. ...
- 百度爬虫:如何提高百度蜘蛛对网站的抓取量
百度爬虫跟百度蜘蛛其实是一回事,百度蜘蛛在抓取网页信息后,会通过临时数据库进行处理,处理后的内容会被分门别类的收到索引库,等用户搜索相关关键词的时候才会在搜索结果页展现出来. 如何提高百度蜘蛛对网站的 ...
最新文章
- numpy.eye详解
- cad怎么调出科创易达绿化_【每日问答26】如何识别CAD图纸dwg格式版本?(内含往期)...
- python中5个json库的速度对比,你猜对了吗
- 字体对话框java实验_Java Web安全 || Java基础 sun.misc.Unsafe
- ejb 示例 2018_EJB钝化和激活示例
- 二、搭建Apache服务器 模板引擎
- 捕获和抛出异常(Ctrl+Alt+T)
- rx java定时循环_Rxjava定时器异常循环
- iText5报表_页眉与页脚
- cloud-api-commons抽取公共类
- RHEL6___构建基于vsftd的YUM源服务器
- Python实现蒙特卡罗方法仿真模拟求解圆周率Pi值
- sitemesh 使用整理(入门)
- 从终端直接下载cuDNN
- 网络聊天室Java群聊私聊_Java Spring + Spring MVC + Mybatis WebSocket实现网络聊天室(群聊+私聊)...
- 除了秀米,微信排版还有什么好用的? ---短网址
- 成为管理层必会的技能之一!利用Python打造一款员工管理系统~
- Matlab Bitwise Operator模块
- “知识共享”国际许可协议4.0版本
- 用R语言画相关性矩阵,带P值和*号
热门文章
- JavaScript 编码规范大全-Eslint(持续更新,欢迎关注点赞加评论)
- U-Boot>WebHome翻译
- 解决:SpringBoot 搭建聚合项目 报 “程序包XXX不存在”
- Lua重回TOP 20,TIOBE 3月编程语言排行榜出炉
- Apache 首位华人董事吴晟谈开源:我对中国开源短期内是消极的
- 英特尔发布全新高性能显卡品牌Arc,首款显卡将于 2022 年上市
- 华为:今年至少 3 亿台设备使用鸿蒙;增长 7%,互联网人薪资报告出炉;英特尔侵犯芯片专利被判赔偿 22 亿美元 | 极客头条...
- 腾讯看点多维实时分析系统架构大曝光!
- 视频内容理解核心技术解密:Partial re-ID 在成片体检中的技术实践
- 分布式系统设计理念为何这么难学?