htmlUnit 静态化 页面(目前,我能用的唯一方法)

hanmeixiaoxue hanmeixiaoxue 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
ajax异步加载的页面,用htmlUnit来静态化页面,思想是:做2个模板,一个采用页面加载的时候 同步 加载 ajax数据,把加载完的页面的内容复制到第2个模板,再将第2个模板保存,这样用户直接访问静态页面。(备注:第二个模板其实只是加载页面的时候不再加载数据,因为要另存为静态页面)
大致思路是这样的,代码如下(这里是静态产品页面的htmlUnit代码):
public static void productzAllToHtml() {
try {
// 创建一个可执行js,css,ajax的多功能WebClient
WebClient multiWebClient = new WebClient(
BrowserVersion.INTERNET_EXPLORER_8);
multiWebClient.setJavaScriptEnabled(true);// 执行JavaScript
multiWebClient.setCssEnabled(true);// 执行css
multiWebClient
.setAjaxController(new NicelyResynchronizingAjaxController());// 设置ajax代理
// 上面加载一个动态的页面(模板1)

// 创建一个普通的WebClient
WebClient commmonWebClient = new WebClient(
BrowserVersion.INTERNET_EXPLORER_8);
commmonWebClient.setJavaScriptEnabled(true);
commmonWebClient.setCssEnabled(false);
//上面是模板2

// 下面是分别加载页面,并执行js
URL dynamicUrl = new URL("http://localhost/fangnw/productzAll.html");
HtmlPage dynamicPage = (HtmlPage) multiWebClient
.getPage(dynamicUrl);//加载动态页面,ajax执行,
// 根据项目需要,使用普通Client加载首页模板(避免执行模板里面的js,这些js都是真正要浏览器查看的时候才会执行)
URL constantUrl = new URL(
"http://localhost/fangnw/productzAll_m.html");
HtmlPage htmlpage = (HtmlPage) commmonWebClient
.getPage(constantUrl);
//这里是动态页面内容copy到静态模板里面
htmlpage.getElementById("contain_in").replace(
dynamicPage.getElementById("contain_in"));

//这里是保存,采用asXML()方法,就是这里,页面保存后变成xml了,我希望是html,没有asHTML()方法啊??
stringToFile(htmlpage.asXml(), "E:\\productzAll_d.html");
// 关闭浏览器
multiWebClient.closeAllWindows();
commmonWebClient.closeAllWindows();
} catch (Exception e) {
e.printStackTrace();
}
}

/保存文件的工具函数
public static void stringToFile(String content, String path) {
try {
FileWriterWithEncoding fileWriter = new FileWriterWithEncoding(
path, "utf-8");
fileWriter.write(content);
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}


请问,如何保存为 html页面呢? 我希望htmlUnit中有这样的方法,只是我没有找到,请大家帮助啊!!

(我能想到的其他解决方法:通过java删除xml的<? version="1.0" ...>头部.在添加 html的 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">)

下面是我静态后的页面头部文件:
<?xml version="1.0" encoding="utf-8"?> //好端端的html 被搞成xml的,这里怎么修改啊?
<html>
<head>
<base target="_blank"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>
【北京新房_潮白河孔雀城 】-九房网
</title>
<link href="./css/productInfo.css" rel="stylesheet" type="text/css"/>

我希望保存后的是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html> //这个才是html啊,css才能有横好的效果
<head>
<base target="_blank"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>
【北京新房_潮白河孔雀城 】-九房网
</title>
<link href="./css/productInfo.css" rel="stylesheet" type="text/css"/>

具体请大家 访问:http://www.jiu30.com 网站,在网站地图下面可以静态页面,网站其他地方时动态页面!

希望得到大家的帮助 谢谢! 我的qq12327649 ,欢迎一起学习 谢谢
...全文

相关推荐

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.csdn.net/mtl1994

matianlongg

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档)

SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心...

探源研习社
评论 2
收藏 已收藏
分享
返回顶部
hanmeixiaoxue
JavaScript 87,983 成员 224,680 内容