前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HtmlUnit动态数据未加载

HtmlUnit动态数据未加载

作者头像
taixingyiji
发布2022-07-25 16:47:12
1.3K0
发布2022-07-25 16:47:12
举报
文章被收录于专栏:taixingyiji的博客笔记

# HtmlUnit动态数据未加载

HtmlUnit数据未加载及解决办法

# 一、解决办法

本人小白只想到这个,若有更好的办法请留个言~

在HtmlUnit获取数据前,使用线程sleep 让数据加载完

代码示例:

代码语言:javascript
复制
public class SpiderClass {
  
		// 内部静态类创建客户端
		private static class innerWebClient{
        private static final WebClient WEB_CLIENT = new WebClient(BrowserVersion.CHROME);
    }
  
		// 根据内部静态类创建客户端单例模式
    public static WebClient getInstance(){
        return innerWebClient.WEB_CLIENT;
    }
  	
  	// main函数
    public static void main(String[] args)  {
      	// 创建客户端
        WebClient client = getInstance();
        try {
          	// 访问https://xx.xx.xx/a.jsp动态网页
            HtmlPage page = client.getPage("https://xx.xx.xx/a.jsp");
          	// 关键部分!!!,让线程sleep以等待网页全部加载完成
            Thread.sleep(10000);
          	// 获取dom id 为aa的节点内容,此aa节点为动态加载内容
            DomElement domElement = page.getElementById("aa");
          	// 节点打印到控制台
            System.out.println(domElement.asText());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

# 二、问题原因

因为程序的读取速度会快一些,而且推测 HtmlUnit是异步读取 html , css ,js

所以一些js还未加载完成,就已经可以读取到出现的 html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # HtmlUnit动态数据未加载
    • # 一、解决办法
      • # 二、问题原因
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档