[Java爬虫] 使用 HtmlUnit + Xpath 模拟点击、动态获取信息
2018-03-24 23:47
1466 查看
一、前言
实现动态操作页面,首先我们进入360搜索的页面(百度页面、搜狗页面也行),输入要查询的关键词,这时候页面就会发生变化,我们要获取新的页面的信息。
此时的爬虫就不再是之前的一个页面的信息了:
[Java爬虫] 使用 Xpath + HtmlUnit 爬取网页基本信息
二、代码
package com.cun.test; import java.util.List; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlElement; import com.gargoylesoftware.htmlunit.html.HtmlInput; import com.gargoylesoftware.htmlunit.html.HtmlPage; /** * 模拟点击,动态获取页面信息 * @author linhongcun * */ public class JsoupHttpClient { public static void main(String[] args) throws Exception { // 创建webclient WebClient webClient = new WebClient(); // 取消 JS 支持 webClient.getOptions().setJavaScriptEnabled(false); // 取消 CSS 支持 webClient.getOptions().setCssEnabled(false); // 获取指定网页实体 HtmlPage page = (HtmlPage) webClient.getPage("https://www.so.com/"); // 获取搜索输入框 HtmlInput input = (HtmlInput) page.getHtmlElementById("input"); // 往输入框 “填值” input.setValueAttribute("larger5"); // 获取搜索按钮 HtmlInput btn = (HtmlInput) page.getHtmlElementById("search-button"); 4000 // “点击” 搜索 HtmlPage page2 = btn.click(); // 选择元素 List<HtmlElement> spanList=page2.getByXPath("//h3[@class='res-title']/a"); for(int i=0;i<spanList.size();i++) { // 输出新页面的文本 System.out.println(i+1+"、"+spanList.get(i).asText()); } } }
三、效果
四、源码与原网页
1、搜索页
①界面②源码
2、搜索结果页
①界面②源码
相关文章推荐
- [置顶] [Java爬虫] 使用 Xpath + HtmlUnit 爬取网页基本信息
- java使用poi导出excel的内容,同时可以利用反射进行动态获取信息
- python爬虫 使用selenium+phontomjs 模拟点击输入 获取东航加载后的源码 机票价格
- java爬虫--免登录,通过httpclient模拟登录并获取登录后的信息
- Java爬虫学习:使用HtmlUnit获取html页面
- java system类使用方法示例 获取系统信息
- Java使用反射来获取泛型信息
- 如何使用java获取雅虎财经上的股票信息
- JAVA使用AXMLPrinter获取APK中Androidmanifest.xml信息
- 使用Java实现B/S系统常见的获取客户端信息功能!
- [Java]知乎下巴第2集:使用爬虫来获取知乎的编辑推荐内容
- 使用java获取未来7天天气信息,可用于android
- 【java工具】使用jdbc访问数据库获取某个存储过程信息及下面参数信息
- Java使用反射来获取泛型信息
- 使用firefox和selenium模拟点击js获取更多评论
- Java 通过使用File类获取文件信息
- Java使用qqwry.dat根据IP地质获取城市信息
- 利用java获取计算机cpu利用率和内存使用信息
- Java 通过使用File类获取文件信息