Lake's Blog Lake's Blog
首页
HCFrame
  • 博客搭建

    • 搜索引擎
    • SEO优化
    • 问题记录
  • Vue

    • 问题记录
  • uni-app
  • 开发

    • Spring
  • 数据库及中间件

    • Elasticsearch
    • SQL
  • 杂谈

    • 杂谈
  • 微服务

    • nacos
    • CAS
  • 算法说明

    • algorithm
  • leetCode

    • leetCode
  • 代理

    • Nginx
  • Linux

    • ubuntu
  • Docker
  • 数据库
  • 消息队列
  • openwrt
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

Lake Liu

很菜的程序员
首页
HCFrame
  • 博客搭建

    • 搜索引擎
    • SEO优化
    • 问题记录
  • Vue

    • 问题记录
  • uni-app
  • 开发

    • Spring
  • 数据库及中间件

    • Elasticsearch
    • SQL
  • 杂谈

    • 杂谈
  • 微服务

    • nacos
    • CAS
  • 算法说明

    • algorithm
  • leetCode

    • leetCode
  • 代理

    • Nginx
  • Linux

    • ubuntu
  • Docker
  • 数据库
  • 消息队列
  • openwrt
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • Spring

  • 数据库及中间件

  • 杂谈

    • 什么是乐观锁,什么是悲观锁
    • Win10启动Tomcat控制台乱码
    • HtmlUnit动态数据未加载
      • 一、解决办法
      • 二、问题原因
    • Shiro关闭session,无状态接入Springboot
    • windows解决logback中文乱码,以及高亮问题
    • IDEA行号太宽
  • 微服务

HtmlUnit动态数据未加载

# HtmlUnit动态数据未加载

HtmlUnit数据未加载及解决办法

# 一、解决办法

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

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

代码示例:

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();
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 二、问题原因

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

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

编辑
#爬虫
上次更新: 2021/03/12, 07:42:50
Win10启动Tomcat控制台乱码
Shiro关闭session,无状态接入Springboot

← Win10启动Tomcat控制台乱码 Shiro关闭session,无状态接入Springboot→

最近更新
01
IDEA行号太宽
03-11
02
uniapp中实现h5扫码功能(微信版)
08-12
03
Docker安装Rabbitmq
07-22
更多文章>
本站总访问量次 | 您是本站第位访问者
Theme by Vdoing | Copyright © 2020-2024 Lake Liu | MIT License | 背景图、Logo、头像设计@Drrizzee
  • 跟随系统
  • 深色模式
  • 浅色模式
  • 阅读模式