jsoup 提取 html 中的所有鏈接、圖片和媒體

c6e3 9年前發布 | 4K 次閱讀 Java jsoup

 
package org.jsoup.examples;

import org.jsoup.Jsoup; import org.jsoup.helper.Validate; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;

import java.io.IOException;

/**

  • Example program to list links from a URL. */ public class ListLinks { public static void main(String[] args) throws IOException {

     Validate.isTrue(args.length == 1, "usage: supply url to fetch");
     String url = args[0];
     print("Fetching %s...", url);
    
     Document doc = Jsoup.connect(url).get();
     Elements links = doc.select("a[href]");
     Elements media = doc.select("[src]");
     Elements imports = doc.select("link[href]");
    
     print("\\nMedia: (%d)", media.size());
     for (Element src : media) {
         if (src.tagName().equals("img"))
             print(" * %s: <%s> %sx%s (%s)",
                     src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"),
                     trim(src.attr("alt"), 20));
         else
             print(" * %s: <%s>", src.tagName(), src.attr("abs:src"));
     }
    
     print("\\nImports: (%d)", imports.size());
     for (Element link : imports) {
         print(" * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel"));
     }
    
     print("\\nLinks: (%d)", links.size());
     for (Element link : links) {
         print(" * a: <%s>  (%s)", link.attr("abs:href"), trim(link.text(), 35));
     }
    

    }

    private static void print(String msg, Object... args) {

     System.out.println(String.format(msg, args));
    

    }

    private static String trim(String s, int width) {

     if (s.length() > width)
         return s.substring(0, width-1) + ".";
     else
         return s;
    

    } }

</pre>

 本文由用戶 c6e3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!