网络爬虫java版

Posted 咔咔kk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络爬虫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); 
       }
      
  }  
}

以上是关于网络爬虫java版的主要内容,如果未能解决你的问题,请参考以下文章

我的第一个网络爬虫 C#版 福利 程序员专车

用Python写网络爬虫(高清版)PDF

Java 网络爬虫获取网页源代码原理及实现

scrapy按顺序启动多个爬虫代码片段(python3)

答疑版 | 网络爬虫技术是否违法?是否存在著作权侵权风险?

Java网络爬虫怎么实现?