zoukankan      html  css  js  c++  java
  • 网络爬虫java版

    java版的网络爬虫基本思路是,先获取网页信息,再根据正则表达式提取网页内容

    package xuexi;
    
    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 webtest {
     /**
      * 获得urlStr对应的网页的源码内容    
      * @param args
      * @throws IOException
      */
        public static String  getURLContent(String urlStr,String charset){
            StringBuffer sb=new StringBuffer();
            try {
            URL    url = new URL(urlStr);
            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName(charset)));
            String temp="";
            do{
                temp=reader.readLine();
                sb.append(temp);
                //System.out.println(temp);
            }while(temp != null);
            
            }catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
            return sb.toString();
        }
        
        /**
         * 正则表达式截取字符串
         * @param destStr
         * @param regexStr
         * @return
         */
        //参数:字符窜和正则表达式
        public static List<String> getMatherSubstrs(String destStr,String regexStr){
            List<String> result = new ArrayList<String>();
              Pattern p=Pattern.compile(regexStr);
              Matcher m=p.matcher(destStr);
              while(m.find()){
                  result.add(m.group(0));
              }
              return result;
        }
        
        
      public static void main(String[] args) throws IOException {
          String content=getURLContent("https://www.qq.com/","utf-8");
          List<String> list=getMatherSubstrs(content,"href="+[\w./:]+"");
           for(String a: list){
              System.out.println(a); 
           }
          
      }  
    }
  • 相关阅读:
    c#数据结构与算法
    学习资源---.NET
    怎样完全删除sqlserver
    树,森林 二叉树之间转化 原理
    ref 和out 区别
    GridView批量删除记录、全选及弹出确认对话框
    .NET基础 小记--------2013.8.10
    Xml 读写
    同步 异步 区别
    委托学习
  • 原文地址:https://www.cnblogs.com/hzcjd/p/12227948.html
Copyright © 2011-2022 走看看