• Java正则匹配原理


    Java正则匹配原理

    WebSpiderCore.java

    package Spider;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /*
     * 网络爬虫爬取数据
     */
    public class WebSpiderCore {
        /*
         * 获得urlStr对应的网页的源码
         */
        public static String getUrlContent(String urlStr,String charset) {
            StringBuilder sb=new StringBuilder();
            try {
                URL url=new URL(urlStr);
                BufferedReader reader=new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName(charset)));
                String temp="";
                while((temp=reader.readLine())!=null) {
    //                sb.append("
    	");
                    sb.append(temp);
                }
                
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return sb.toString();
        }
        
        public static List<String> getMatherSubstrs(String destStr,String regexStr){
            Pattern p=Pattern.compile(regexStr);  //取到超链接的地址
            Matcher m=p.matcher(destStr);
            List<String> result=new ArrayList<String>();
            while(m.find()) {
                result.add(m.group(1));
            }
            return result;
        }
        public static void main(String[] args) {
            String destStr=getUrlContent("https://www.163.com/","gbk");
    //        System.out.println(destStr);
            List<String> result=getMatherSubstrs(destStr,"href="([\w\s./:]+?)"");
            for(String temp:result) {
                System.out.println(temp);
            }
        }
    }

    打印结果

    GitHub地址:https://github.com/mentality-sun/Java/blob/master/WebSpiderCore.java

  • 相关阅读:
    IBatis学习总结之动态拼sql
    IBatis学习总结
    帝都残暴的.net 之旅 (Martin Fowler 有留言哦)
    简洁实用的WordPress模板
    发现一位同行特牛
    app爬虫--mitmproxy用法梳理
    [转]数据库设计中的14个技巧
    [转] sql数据类型 varchar与nvarchar的区别
    web工作原理
    Xcode6 LaunchImage尺寸
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11346623.html
Copyright © 2020-2023  润新知