我正在应用以下示例http://jsoup.org/cookbook/extracting-data/example-list-links来列出链接。
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;
}
}
我只更换了“”用法:使用“http://www.google.com”来提取“”以获取“”。 JSoup文档太差了(我看到)。所以,我得到以下错误&amp;无法找出原因:线程“main”中的异常java.lang.IllegalArgumentException:用法:http://www.google.com at org.jsoup.helper.Validate.isTrue(Validate.java:45) 在TestClass.main(TestClass.java:16)
我发现以下帖子有关同一问题:importing java libarary但我已经用网站名称替换了用法:...等,但没有帮助。
答案 0 :(得分:1)
我只更换了“”用法:使用“http://www.google.com”提供“”提取“”。
这表明你不明白Validate.isTrue
电话的作用。在更改代码之前,如果不更改代码而不知道它在做什么,这一点非常重要。
您意味着更改该代码。您打算运行此代码并将URL作为命令行参数提供。第一个语句验证只是一个命令行参数。
所以把代码放回原来的样子,然后运行
java -cp [whatever] org.jsoup.examples.ListLinks http://google.com
答案 1 :(得分:-1)
尝试这个而不是网站上的预设......我在另一个堆栈q&amp; a
上找到了这个public class ListLinks {
public static void main(String[] args) throws IOException {
String url = "http://shopping.yahoo.com";
print("Fetching %s...", url);
Document doc = Jsoup.connect(url).get();
Elements links = doc.getElementsByTag("a");
}