资源简介
技术点:1、使用htmlparser解析html文件,得到html代码里的js、css、img链接 2、将相对路径的链接转变成绝对路径,并读取资源 3、将css和js合并到html 4、将图片转换成base64编码,写入标签的src
代码片段和文件信息
package jsCssInHtml;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.htmlparser.Parser;
import org.htmlparser.Tag;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.lexer.Lexer;
import org.htmlparser.lexer.Page;
import org.htmlparser.util.DefaultParserFeedback;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import Decoder.base64Encoder;
public class JsCssImgInHtml {
private URL strWeb = null; //网址
private String strEncoding = null; //编码
private String strText = null; //网页文本
private String strFileName = null; //导出路径
public JsCssImgInHtml(String strText String strUrl String strEncoding String strFileName) {
try {
strWeb = new URL(strUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
return;
}
this.strText = strText;
this.strEncoding = strEncoding;
this.strFileName = strFileName;
}
// 将InputStream转换成按字符编码的String
public static String InputStreamTOString(InputStream in String encoding) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024 * 1000];
int count = -1;
while ((count = in.read(data 0 1024 * 1000)) != -1) {
outStream.write(data 0 count);
}
data = null;
return new String(outStream.toByteArray() encoding);
}
// 将InputStream转换成byte数组
public static byte[] InputStreamTOByte(InputStream in) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024 * 1000];
int count = -1;
while ((count = in.read(data 0 1024 * 1000)) != -1) {
outStream.write(data 0 count);
}
data = null;
return outStream.toByteArray();
}
//根据链接获取html源代码
public static String getHtmlText(String strUrl String strEncoding) {
try {
URL url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream in = connection.getInputStream();
return InputStreamTOString(in strEncoding);
} catch (Exception e) {
return ““;
}
}
//相对路径转绝对路径
public static String makeAbsoluteURL(URL strWeb String innerURL) {
// 去除后缀
int pos = innerURL.indexOf(“?“);
if (pos != -1) {
innerURL = innerURL.substring(0 pos);
}
if (innerURL != null && innerURL.toLowerCase().indexOf(“http“) == 0) {
return innerURL;
}
URL linkUri = null;
try {
linkUri = new URL(strWeb innerURL
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-08-14 14:13 jsCssInHtml\
文件 738 2017-08-17 18:47 jsCssInHtml\.classpath
文件 387 2017-08-14 09:00 jsCssInHtml\.project
目录 0 2017-08-14 09:00 jsCssInHtml\.settings\
文件 598 2017-08-14 09:00 jsCssInHtml\.settings\org.eclipse.jdt.core.prefs
目录 0 2017-08-17 18:47 jsCssInHtml\bin\
目录 0 2017-08-17 18:47 jsCssInHtml\bin\jsCssInHtml\
文件 10372 2017-08-18 15:08 jsCssInHtml\bin\jsCssInHtml\JsCssImgInHtml.class
目录 0 2017-08-17 18:47 jsCssInHtml\lib\
文件 69798 2013-09-10 16:26 jsCssInHtml\lib\filterbuilder.jar
文件 71952 2013-09-10 16:26 jsCssInHtml\lib\htmllexer.jar
文件 138838 2013-09-10 16:26 jsCssInHtml\lib\htmlparser.jar
文件 15604 2013-09-10 16:26 jsCssInHtml\lib\sitecapturer.jar
文件 7471 2017-08-17 18:47 jsCssInHtml\lib\sun.misc.ba
文件 42811 2013-09-10 16:26 jsCssInHtml\lib\thumbelina.jar
目录 0 2017-08-14 09:13 jsCssInHtml\src\
目录 0 2017-08-14 09:13 jsCssInHtml\src\jsCssInHtml\
文件 10635 2017-08-18 15:08 jsCssInHtml\src\jsCssInHtml\JsCssImgInHtml.java
- 上一篇:android的显示gif图片的demo
- 下一篇:quartz 定时任务jar包
相关资源
- Java-WebSocket-jar
- 网上 商品 交易 系统 源代码 jsp
- 基于JAVA的论坛源码(J2EE 毕业设计)
- pos机java调用程序demo(基于dll调用)
- Python AES和Java AES/ECB/PKCS5Padding互转
- csv文件读下用的jar包
- java解压缩文件文件夹
- java药品管理系统
- stm32cubeMX_v4.27及f4HAL库包及所需要的
- java网页视频播放
- 通过JSP将数据库中的数据显示到网页
- JAVA串口助手
- 华为Java编程规范试题2(含答案)
- JAVA的JAR或Class生成Delphi的Native Bridge
- 解析wkt数据
- java Rest接口服务端简单式Java后台各类
- jsp外文参考文献
- Java Service Wrapper部署说明
- java类外文翻译
- Blackjack游戏原代码
- java版扫雷源代码+图片素材
- 个人所得税计算器 java
- 10个球中找到一个坏球的测试用例及测
- JSP设备管理系统源码
- java_ssh2框架_小
- java密保卡生成 源码
- jsp网页制作 通讯录管理系统
- 豆瓣API获取书籍详细信息Java代码
- aliyun-java.jar两种包
- 银行家算法 java 图形界面
评论
共有 条评论