1

HTML Web ページのすべての URL を取得しようとしています。私はこの関数を書きました

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; 
          }


    }

これらの URL で参照されるページにアクセスしたい。しかし、抽出された URL の一部は相対的なものである可能性があります。URL が絶対かどうかを簡単に確認する方法はありますか? そうでない場合は、ベースURLがあることを考慮して、どうすれば作成できますか。

4

1 に答える 1

1

これを試すことができます:-

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

これをチェックしてください。

スレッドの助けを借りて

于 2013-09-07T16:04:36.023 に答える