2012-02-14 27 views
1

示例程序:列表链接示例程序参数

本示例程序演示了如何从URL中获取页面;提取链接,图像和其他指针;并检查他们的网址和文字。

指定要作为程序唯一参数获取的URL。

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; 

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

如何指定程序的唯一参数?我是初学者,所以不要打我。 :)

+0

你是问如何在价值观传递给字串[] args上无效的主要? – JohnFx 2012-02-14 16:09:29

回答

4

这是Java,因此,当您运行它时,只需将URL作为参数传递即可。例如:

java -jar MyJar.jar http://google.com/ 

在你还没有打包成一个JAR的情况下,那么它的更简单:

java MyClass http://google.com/