java根据url爬取网页html内的所有链接地址代码

代码语言:java

所属分类:其他

代码描述:java根据url爬取网页html内的所有链接地址代码

代码标签: java 爬虫 采集 网页 html 链接

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;



import java.net.*;
import java.io.*;
import java.util.regex.*;
public class HelloWorld {
    public static void main(String []args) {
         Urls myurl=new Urls("<body","/body>");
         myurl.getStartUrl("https://ask.bfw.wiki/question-3-0.html");
         myurl.getUrlContent();
         myurl.getContentArea();
         myurl.getStringInUrl("http://www.baidu.com/");
         myurl.getStringNotInUrl("google");
         myurl.Urls();
    }
}


/*
根据指定的规则,经过构造正则表达式获取网址
*/

 class  Urls
 {
    private String startUrl;                                         //开始采集网址
    String  urlContent;
    String ContentArea;
    private String strAreaBegin ,strAreaEnd ;            //采集区域开始采集字符串和结束采集字符串
    private String stringInUrl,stringNotInUrl;        
    String strContent;//得到的采集内容
    String[] allUrls;                                                            //采集到的全部网址
    private String  regex;                                                 //采集规则
    
    UrlAndTitle   urlAndTitle=new UrlAndTitle();    //存储网址和标题                    
    

    
    
    //初始化构造函数 strAreaBegin 和strAreaEnd
 
    public Urls (String strAreaBegin,String strAreaEnd)
    {
        this.strAreaBegin=strAreaBegin;
        this.strAreaEnd=strAreaEnd;
  }
  
  //
    public void Urls()
    {
        int i=0;
        //String regex ="<a href="?'?http://[a-zA-Z0-9]+/.[a-zA-Z0-9]+/.[a-zA-Z]+/?[/.?[/S|/s]]+[a>]$";
        String regex ="<a.*?/a>";
         //String regex ="http://.*?>";
        Pattern pt=Pattern.compile(regex);
        Matcher mt=pt.matcher(ContentArea);
        while(mt.find())
         {
                 System.out.println(mt.group());
                 i++;
                 
                 //获取标题
                 Matcher title=Pattern.compile(">.*?</a>").matcher(mt.group()); 
                 while(title.find())
                 {
                      System.out.println("标题:"+title.group().replaceAll(">|</a>",""));
                 }
                 
                 //获取网址
                 Matcher myurl=Pattern.compile("href=.*?>").matcher(mt.group()); 
 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0