Java HtmlParse提取标签中的值操作

网友投稿 344 2022-11-26


Java HtmlParse提取标签中的值操作

☆代码示例:

代码块语法遵循标准markdown代码,例如:

package cas;

import org.htmlparser.Node;

import org.htmlparser.NodeFilter;

import org.htmlparser.Parser;

import org.htmlparser.filters.StringFilter;

import org.htmlparser.filters.TagNameFilter;

import org.htmlparser.tags.ImageTag;

import org.htmlparser.util.NodeList;

/**

* Html 中的body体中提取出Img标签中的src值

*

* @author XY

*

*/

public class CASHtmlImgConvert {

public static void main(String[] args) {

//演示

String[] oldSrcPath=changeImgSrc("\"\"");

if(oldSrcPath!=null){

for(String str:oldSrcPath){

System.out.println(str);

}

}

}

public static boolean isEmpty(String str){

if(str!=null&&(!str.equals("")))

return false;

else

return true;

}

/**

*

* @param htmlPath 本地的html路径 或者body

*/

private static String[] changeImgSrc(String htmlPath)

{ StringBuilder oldSrcPath = new StringBuilder();

try {

Parser parser = new Parser(htmlPath);

//标签名过滤器

NodeFilter filter = new TagNameFilter ("img");

NodeList nodes = parser.extractAllNodesThatMatch(filter);

Node eachNode = null;

ImageTag imageTag = null;

if (nodes != null)

{

// 遍历所有的img节点

for (int i = 0; i < nodes.size(); i++)

{

eachNode = (Node)nodes.elementAt(i);

if (eachNode instanceof ImageTag)

{

imageTag = (ImageTag)eachNode;

// 获得html文本的原来的src属性

String path=imageTag.getAttribute("src");

if(path.startsWith(""))

path="http://czb8688.com"+path;

oldSrcPath .append(path+",");

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

String str=oldSrcPath.toString();

//返回图片数组

return str.substring(0,str.length()-1).split(",");

}

}

补充知识:java 扫描HTML 拿取各种标签资源数据

直接上代码,不比比。

package com.zhirui.oa.modules.notice.utils;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class TemplateUtil {

public static List> getImgSrc(String htmlContent) {

List> srcList = new ArrayList<>(); //用来存储获取到的地址

Map map = null;

Pattern p = Pattern.compile("<(img|IMG)(.*?)(>|>|/>)");//匹配字符串中的img标签

Matcher matcher = p.matcher(htmlContent);

boolean hasPic = matcher.find();

if (hasPic == true)//判断是否含有图片

{

while (hasPic) //如果含有图片,那么持续进行查找,直到匹配不到

{

String group = matcher.group(2);//获取第二个分组的内容,也就是 (.*?)匹配到的

Pattern srcText = Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");//匹配图片的地址

Matcher matcher2 = srcText.matcher(group);

if (matcher2.find()) {

map = new HashMap<>();

map.put("imgResourcePath", matcher2.group(3));

srcList.add(map);//把获取到的图片地址添加到列表中

map = null;

}

hasPic = matcher.find();//判断是否还有img标签

}

}

return srcList;

}

public static List> getVideoSrc(String htmlContent) {

List> srcList = new ArrayList<>(); //用来存储获取到的视频地址

Map map = null;

Pattern p = Pattern.compile("<(video|VIDEO)(.*?)(>|>|/>)");//匹配字符串中的video标签

Matcher matcher = p.matcher(htmlContent);

boolean hasPic = matcher.find();

if (hasPic == true)//判断是否含有视频

{

while (hasPic) //如果含有视频,那么持续进行查找,直到匹配不到

{

String group = matcher.group(2);//获取第二个分组的内容,也就是 (.*?)匹配到的

Pattern srcText = Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");//匹配视频的地址

Matcher matcher2 = srcText.matcher(group);

if (matcher2.find()) {

map = new HashMap<>();

map.put("videoResourcePath", matcher2.group(3));

srcList.add(map);//把获取到的视频地址添加到列表中

map = null;

}

hasPic = matcher.find();//判断是否还有video标签

}

}

return srcList;

}

public static List> getAhref(String htmlContent) {

List> srcList = new ArrayList<>(); //用来存储获取到的超链接地址

Map map = null;

Pattern p = Pattern.compile("<(a|A)(.*?)(>|>|/>)");//匹配字符串中的a标签

Matcher matcher = p.matcher(htmlContent);

boolean hasPic = matcher.find();

if (hasPic == true)//判断是否含有超链接

{

while (hasPic) //如果含有超链接,那么持续进行查找,直到匹配不到

{

String group = matcher.group(2);//获取第二个分组的内容,也就是 (.*?)匹配到的

Pattern srcText = Pattern.compile("(href|HREF)=(\"|\')(.*?)(\"|\')");//匹配超链接的地址

MTHPaztxatcher matcher2 = srcText.matcher(group);

if (matcher2.find()) {

map = new HashMap<>();

map.put("aResourcePath", matcher2.group(3));

srcList.add(map);//把获取到的超链接地址添加到列表中

map = null;

}

hasPic = matcher.find();//判断是否还有a标签

}

}

return srcList;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 获取冒号后面的参数(正则)实现代码
下一篇:FastDFS分布式文件系统环境搭建及安装过程解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~