htmlunit爬取js异步加载后的页面
来源:互联网 发布:淘宝客的返利管理 编辑:程序博客网 时间:2024/06/05 10:22
直接上代码:
一、 index.html
调用后台请求获取content中的内容。
<html><head> <script type="text/javascript" src="./jquery.min.js"></script></head><body><h2>Hello World!</h2><div id="content"></div><script type="text/javascript">$(document).ready(function(){ $.post("/evh/test/testList",{},function(data){ $("#content").text(JSON.stringify(data)); }); });</script></body></html>
二、TestController.java
/test/testList接口从后台数据库获取数据。
package com.everhomes.proxy.controller;import javax.annotation.Resource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.everhomes.proxy.mapper.TestMapper;@RestController@RequestMapping("/test")public class TestController { private static final Logger logger = LoggerFactory.getLogger(TestController.class); @Resource private TestMapper testMapper; @RequestMapping("testList") public Object testList(){ return testMapper.testList(); }; @ExceptionHandler(Exception.class) public Object exception(Exception e){ logger.error("error: ", e); return "error: " + e.toString(); }}
三、Crawler.java
package com.everhomes.generate;import java.io.IOException;import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.HtmlPage;public class Crawler { public static void main(String[] args) throws IOException, InterruptedException { WebClient webClient = new WebClient(BrowserVersion.CHROME); webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setCssEnabled(false); webClient.getOptions().setRedirectEnabled(true); webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setTimeout(50000); HtmlPage rootPage = webClient.getPage("http://localhost:8080/evh/index.html"); webClient.waitForBackgroundJavaScript(10000); FileUtils.createFile(DIRECTORY+"cc.html", rootPage.asXml()); webClient.close(); }}
四、pom.xml
添加相关依赖。
<dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit-core-js</artifactId> <version>2.23</version> </dependency> <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.25</version> </dependency>
0 0
- htmlunit爬取js异步加载后的页面
- htmlunit爬取js异步加载后的页面
- 【Jsoup】配合 htmlunit 爬取异步加载的网页
- 【Jsoup】配合 htmlunit 爬取异步加载的网页
- HtmlUnit爬取页面列表链接
- HtmlUnit爬取动态数据(js相关)
- js 委派(元素异步加载到页面后点击事件)
- htmlunit爬取数据
- 利用htmlunit和jsoup来实现爬取js的动态网页
- 学习htmlunit获取动态网页加载后的代码
- HtmlUnit 获取登录后的页面信息失败
- htmlunit抓取js执行后的网页源码
- htmlunit爬取Ajax动态生成的网页获取不到生成后的结果的问题的解决
- Htmlunit之爬取网页
- WebCollector爬取JS加载的数据
- WebCollector爬取JS加载的数据
- 页面优化——js异步加载
- html页面异步加载js文件
- C# Datatable的Select方法
- 如何生产.md类型的文件
- How To Install WordPress with LAMP on Ubuntu 16.04
- HEX2BIN在WIN7下不能用之后
- extjs 6.x 的使用
- htmlunit爬取js异步加载后的页面
- HZNU Training 3—L
- 批处理隐藏自身窗口
- HDFS中的Namenode和Datanode
- udp通信笔记(一)
- bzoj 2956: 模积和 分块+数学
- 仿ios支付宝解锁功能(一)
- YOLO应用化之保存视频
- 深度优先搜索---最短路径