1
我剛開始玩弄Jsoup,所以按照他們在網站上的教程。我認爲這個代碼應該可以正常工作,但是當我在netbeans上運行它時,我遇到了錯誤。Jsoup,從網站中提取鏈接,圖像。運行時例外
這是我使用的代碼:
`
/**
*
* @author Slabs One
*/
public class ParseWebpage {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
Validate.isTrue(args.length == 1, "http://www.gumtree.com.au/");
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;
}
}
`
有不應該是這個代碼的任何問題,但在運行時我得到這個錯誤:
Exception in thread "main" java.lang.IllegalArgumentException: http://www.gumtree.com.au/
at org.jsoup.helper.Validate.isTrue(Validate.java:45)
at parsewebpage.ParseWebpage.main(ParseWebpage.java:25)
任何洞察力,爲什麼這不起作用將不勝感激
那麼,它看起來像你沒有運行任何命令行參數,並且'Validate'確保你正在運行它一個命令行參數。 –
抱歉,由於某種原因,整個班級都沒有被抄錄。我有 'package parsewebpage; import org.jsoup.Jsoup; import org.jsoup.helper.Validate; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; 進口產生java.io.IOException;' 在類的頂部,不知道爲什麼沒有得到coppied在初始後 –
我下面[鏈接](http://jsoup.org/cookbook/提取數據/示例列表鏈接) –