正则表达式抓取网页资源

来源:互联网 发布:windows vim编辑器 编辑:程序博客网 时间:2024/05/16 23:37

分享一个工具类,用户抓取网页上的图片、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;          } }


0 0
原创粉丝点击