/**
* 获取指定HTML标签的指定属性的值
*
* @param html 要匹配的源html
* @param element 标签名称
* @param attr 标签的属性名称
* @return 属性值列表
*/
public List<String> match(String html, String element, String attr) {
List<String> imageUrls = new ArrayList<>();
Document doc = Jsoup.parse(html);
Elements imgTags = doc.select(element);
for (Element imgTag : imgTags) {
String src = imgTag.attr(attr);
imageUrls.add(src);
}
return imageUrls;
/**
* 获取指定HTML<a>标签链接和内容值
*
* @param html 要匹配的源html
* @return 属性值列表 Pair<链接url,链接的值>
*/
public List<Pair<String, String>> matchLink(String html) {
List<Pair<String, String>> pairList = new ArrayList<>();
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
for (Element link : links) {
String href = link.attr("href");
Node node = link.childNode(0);
String text = node.toString();
pairList.add(Pair.of(href, text));
}
return pairList;
}
/**
* 获得链接属性参数值
* @param url url
* @return String
*/
public HashMap<String,String> getParamByUrl(String url) {
HashMap<String, String> map = new HashMap<>();
url += "&";
String[] params = url.split("\\?");
if(params.length <= 1){
return map;
}
String[] queryParams = params[1].split("&");
for (String queryParam : queryParams) {
String[] param = queryParam.split("=");
map.put(param[0],param[1]);
}
return map;
}
/**
* 替换链接里的
* @param link 内容链接
* @param param 参数名称
* @param newValue 新值
* @param connector 连接符
* @return String
*/
public String replaceUrl(String link,String param,String newValue,String connector){
String oldParamValue = "(" + connector + param + "=[^\""+connector+"]*)";
String newParamValue = connector + param + "=" + newValue;
return link.replaceAll(oldParamValue, newParamValue);
}
}```
JAVA解析HTML常见工具类
最新推荐文章于 2024-08-09 03:43:55 发布