html5 数据懒加载图片,Jsoup+HtmlUnit获取懒加载数据
需要的包:
org.projectlombok
lombok
provided
1.16.20
org.jsoup
jsoup
1.8.3
net.sourceforge.htmlunit
htmlunit
2.25
返回的类:
import lombok.Data;
/*
* @author zzf
* @date 2019年1月15日 下午5:07:17
*/
@Data
public class TyphoonReportVo {
/**
* 发布时间
*/
String releaseTime;
/**
* 经度
*/
String longitude;
/**
* 纬度
*/
String latitude;
/**
* 中心气压
*/
String centralPressure;
/**
* 最大风速
*/
String maxWind;
/**
* 台风等级
*/
String typhoonLevel;
/**
* 台风名
*/
String typhoonName;
}
这里我要爬取的是台风信息:
http://typhoon.weather.com.cn/
代码如下:
public ListgetTyphoonReport() {
Listlist=new ArrayList<>();
String typhoonWeatherUrl="http://typhoon.weather.com.cn/";
try {
WebClient wc = new WebClient(BrowserVersion.CHROME);
// 启用JS解释器,默认为true
wc.getOptions().setJavaScriptEnabled(true);
// 禁用css支持
wc.getOptions().setCssEnabled(false);
// js运行错误时,是否抛出异常
wc.getOptions().setThrowExceptionOnScriptError(false);
// 状态码错误时,是否抛出异常
wc.getOptions().setThrowExceptionOnFailingStatusCode(false);
// 设置连接超时时间 ,这里是5S。如果为0,则无限期等待
wc.getOptions().setTimeout(5000);
// 是否允许使用ActiveX
wc.getOptions().setActiveXNative(false);
// 等待js时间
wc.waitForBackgroundJavaScript(1 * 1000);
// 设置Ajax异步处理控制器即启用Ajax支持
wc.setAjaxController(new NicelyResynchronizingAjaxController());
// 不跟踪抓取
wc.getOptions().setDoNotTrackEnabled(false);
HtmlPage page = wc.getPage(typhoonWeatherUrl);
// 以xml的形式获取响应文本
String pageXml = page.asXml();
Document document = Jsoup.parse(pageXml);
//获取对应a标签的url
Element a = document.select("div.borBox > h2.titleA > span > a").get(0);
String typhoonName = a.text();
page = wc.getPage(a.attr("href"));
pageXml = page.asXml();
Document listDocument = Jsoup.parse(pageXml);
//获取台风历史信息
Elements trs = listDocument.select("table > tbody > tr:gt(5)");
for (Element tr : trs) {
//保存数据
TyphoonReportVo typhoonReportVo=new TyphoonReportVo();
typhoonReportVo.setReleaseTime(tr.select("td:eq(0)").get(0).text());
typhoonReportVo.setLongitude(tr.select("td:eq(1)").get(0).text());
typhoonReportVo.setLatitude(tr.select("td:eq(2)").get(0).text());
typhoonReportVo.setCentralPressure(tr.select("td:eq(3)").get(0).text());
typhoonReportVo.setMaxWind(tr.select("td:eq(4)").get(0).text());
typhoonReportVo.setTyphoonLevel(tr.select("td:eq(5)").get(0).text());
typhoonReportVo.setTyphoonName(typhoonName);
System.out.println(tr);
list.add(typhoonReportVo);
}
} catch (Exception e) {
return null;
}
return list;
}
运行后:
ok~这样就能获取懒加载后的数据了!
html5 数据懒加载图片,Jsoup+HtmlUnit获取懒加载数据相关推荐
- mysql 懒加载数据_jpa如何懒加载大字段,懒加载之后又如何获取懒加载字段
前言:对于大字段,我们在查询列表的时候不需要查询,但是修改的时候有需要展示大字段内容,怎么办 问1.jpa如何懒加载大字段?即查询列表的时候不查询出来 问2.懒加载之后又如何获取懒加载字段.比如,在后 ...
- ios加载本地html懒加载图片方案,IOS开发中加载大量网络图片优化方法
IOS开发中加载大量网络图片如何优化 1.概述 在IOS下通过URL读一张网络图片并不像其他编程语言那样可以直接把图片路径放到图片路径的位置就ok,而是需要我们通过一段类似流的方式去加载网络图片,接着 ...
- 关于img标签加载图片失败优化以及懒加载。
这篇博客算是完全的笔记了,记录一下平常中不怎么注意的img标签的一些事. 昨天看到这篇Handling broken images with the service worker文章,这文章中有另外提 ...
- android 实现异步加载图片,Android中ImageView异步加载图片类
本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...
- html.fromhtml 加载图片,TextView使用html.fromhtml加载html并显示图片
项目中需要显示html的字符串,ios是用的webview,不过感觉webview太麻烦 就是用了textview str是一个包含图片的html格式的文件,要在textview种显示文字和图片,代码 ...
- php获取post表单数据_PHP如何通过post方法来获取form表单中数据?(代码示例)
我们在网站开发过程中,通常都会遇到关于php form表单的相关操作.如php获取带有post提交方法的表单数据,这种该如何操作呢?如果大家有看过我[PHP如何通过get方法获得form表单数据?]这 ...
- 可转债数据一览表集思录_EXCEL一键获取可转债所有实时数据
在本文的底部,各位读者可以获取对应的EXCEL模板. 偶尔使用集思录数据做可转债投资,但一些关键数据需要注册会员才可以使用,而且分析时经常需要导入到EXCEL中计算更多的个性指标. 因此,我用EXCE ...
- ajax获取后台数据的几种方式及如何获取ajax内部的数据供外部使用
文章目录 1 ajax获取后台数据的几种方式 1.1 原生js的ajax方式 1.1.1 get 1.1.2 post 1.2 jQuery封装的ajax方式 1.2.1 $.ajax 1.2.2 $ ...
- java jsoup爬动态网页_使用Jsoup+HtmlUnit抓取动态网页数据
最后更新日期为2018.1.3 只为自己留个记录 待添加功能: 1.获取历史全部消息 2.爬取大于10条数据 3.自定义抓取公众号信息 package cc.buckler.test; import ...
最新文章
- 基于数据处理的CSV格式行列变换及数据清洗
- html绑定多个事件,jquery可以给多个元素绑定同一事件吗?
- 大顶堆删除最大值_C++|使用STL算法创建、调整、输出最大堆、最小堆
- 6-4 使用函数统计指定数字的个数_高手不可不学的Excel引用函数(上)
- 面向对象程序设计的4个主要特点
- Polylink 智能话机之—— e-talk 2200
- 计算机二级c语言考点变化,计算机二级C语言考点归纳汇总.doc
- java字符串不足长度自动补0
- 计算机怎么打不开照相机图片,Win10系统相机打不开怎么办-电脑自学网
- 福师电子计算机主要以,福师《计算机应用基础》在线作业一 电子计算机主要以划分发展阶段...
- bert中最大处理序列长度超过512的处理策略
- 【学习笔记】Python之 pdf 下载、合并
- MusicLibrary:一个丰富的音乐播放封装库
- Nacos服务器1.4.1下载篇
- sybase ASE在unixlinux上的自动备份脚本
- Strategy模式的具体实现
- dncnn图像去噪_深立井井壁图像的卷积神经网络去噪方法
- 项目经理之如何做好项目经理
- Unity可视化编程插件: Bolt,可以像UE4的蓝图那样啦
- 数论四大定理之——威尔逊定理
热门文章
- 理解运算符优先级(简单易懂,建议收藏)
- 操作元素之修改元素属性
- 操作元素-改变元素内容
- 用过的人都知道,AWT_Swing_多选框功能可是很好用啊
- vue 引入自定义js方法并调用
- 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景...
- R语言CRAN软件包Meta分析 1
- AI驱动智能化日志分析 : 通过决策树给日志做聚类分析
- 【李宏毅2020 ML/DL】补充:Structured Learning: Introduction Structured Linear Model
- Increasing the OpLog Size in MongoDB(don't need full resync)