zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数据类型
    泛型
    如何同步ORACLE和sqlserver的数据
    JBOss 端口没占用!
    Oracle数据库启动流程
    无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
    数组的选择排序和冒泡排序
    Java条形码生成方案及二维码要点
    更改表字段的长度
    jquery 产品查看放大镜组件
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11346623.html
Copyright © 2011-2022 走看看