如何从网页中提取绝对URL?

时间:2013-09-07 16:02:40

标签: java url html-parsing

我正在尝试在HTML网页中获取所有网址。我写过这个函数

public static List<String> getURLs(String url){
        List<String> urls = new ArrayList<String>();
        try{
              Document doc2 = Jsoup.connect("http://"+url)
                      .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                        .timeout(20000)
                        .get();

              String bodyHTML= doc2.select("body").get(0).html();
              Pattern pattern =
                    Pattern.compile("(<a [^>]*href=['\"]?|<img[^> ]* src=['\"]?)");

                    Matcher matchs = pattern.matcher(bodyHTML);
                   while( matchs.find()){
                     System.out.println("Match Found "+bodyHTML.substring( matchs.start(), matchs.end()));
                    urls.add(bodyHTML.substring( matchs.start(), matchs.end()));
                    }
                   return urls;



          }
          catch (Exception e)
          {
              e.printStackTrace();
          }finally
          {
              return urls; 
          }


    }

我想访问这些网址引用的网页。 BUt提取的一些URL可能是相对的。有没有一种简单的方法来查找URL是否绝对?如果不是,我怎么能创建一个,考虑到我有一个基本URL。

1 个答案:

答案 0 :(得分:1)

你可以试试这个: -

String bodyHTML = doc2.select("body").absUrl("href");

检查this

Thread

获取帮助