分享一个工具类,用户抓取网页上的图片、js、css等路径
传入
package lab2;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* 项目名称:lab
* 类名称:Snippet
* 类描述:TODO 根据html源码中的资源路径
* 创建人: yy
* 创建时间:2016年11月30日 下午5:26:38
* @version
*/
public class Snippet {
/**
* @Title: getSrc
* @Description: TODO 获取指定标签的src属性集合
* @date 2016年11月30日
* @author yy
* @param @param htmlStr 网页源码
* @param @param htmlMark 标签名 eg. img
* @param @return 所有指定标签的src属性
* @return List<String>
* @throws
*/
public static List<String> getSrc(String htmlStr,String htmlMark){
String ele="";
Pattern p;
Matcher m;
List<String> res = new ArrayList<String>();
String reg = "<"+htmlMark+".*src\\s*=\\s*(.*?)[^>]*?>"; //img:<img.*src\\s*=\\s*(.*?)[^>]*?>
p = Pattern.compile
(reg,Pattern.CASE_INSENSITIVE);
m = p.matcher(htmlStr);
while(m.find()){
ele = ele + "," + m.group();
Matcher mr = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(ele);
while(mr.find()){
res.add(mr.group(1));
}
}
return res;
}
/**
* @Title: getHref
* @Description: TODO 获取指定标签的href属性集合
* @date 2016年11月30日
* @author yy
* @param @param htmlStr 网页源码
* @param @param htmlMark 标签名 eg. a
* @param @return 所有指定标签的href属性
* @return List<String>
* @throws
*/
public static List<String> getHref(String htmlStr,String htmlMark){
String ele="";
Pattern p;
Matcher m;
List<String> res = new ArrayList<String>();
String reg = "<"+htmlMark+".*href\\s*=\\s*(.*?)[^>]*?>"; //img:<img.*src\\s*=\\s*(.*?)[^>]*?>
p = Pattern.compile
(reg,Pattern.CASE_INSENSITIVE);
m = p.matcher(htmlStr);
while(m.find()){
ele = ele + "," + m.group();
Matcher mr = Pattern.compile("href\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(ele);
while(mr.find()){
res.add(mr.group(1));
}
}
return res;
}
}