Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jsoup教程抛出java.lang.IllegalArgumentException_Java_Jsoup - Fatal编程技术网

jsoup教程抛出java.lang.IllegalArgumentException

jsoup教程抛出java.lang.IllegalArgumentException,java,jsoup,Java,Jsoup,我遵循Jsoup示例来尝试理解它是如何工作的,并且复制并粘贴了所有代码,但是我在线程主java.lang.IllegalArgumentException:at org.Jsoup.helper.Validate.isTrueValidate.java:45中不断收到错误“Exception” 位于jsoup.examples.ListLinks.mainListLinks.java:21’。IDE是NetBeans。错误在哪里 package jsoup.examples; import or

我遵循Jsoup示例来尝试理解它是如何工作的,并且复制并粘贴了所有代码,但是我在线程主java.lang.IllegalArgumentException:at org.Jsoup.helper.Validate.isTrueValidate.java:45中不断收到错误“Exception” 位于jsoup.examples.ListLinks.mainListLinks.java:21’。IDE是NetBeans。错误在哪里

package 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, "http://news.ycombinator.com/");
       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;
   }
}

返回的响应代码为403,表示禁止

在执行get之前,请尝试设置用户代理。比如:

Document doc = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0").get();

您进行上述更改的代码对我有效。

您能发布完整的异常吗?运行时是否传递了参数?如果不在命令提示符中传递任何参数,可能会导致错误。完全异常:线程主java.lang.IllegalArgumentException中的异常:位于org.jsoup.helper.Validate.isTrueValidate.java:45位于jsoup.examples.ListLinks.mainListLinks.java:21有些离题,但我不理解args.length==1在这里的作用。我正处于Java的初级阶段。@SheldonHughes向我展示您获得的堆栈跟踪。尝试删除Validate语句,看看您得到了什么。显示完整的堆栈跟踪。剪切并粘贴主线程java.lang.IllegalArgumentException:at org.jsoup.helper.Validate.isTrueValidate.java:45 at jsoup.examples.ListLinks.mainListLinks.java:21程序的参数应为:“http://news.ycombinator.com/”,不带引号和空格。抱歉。我想这就是你想要的。线程main java.lang.ArrayIndexOutOfBoundsException中的异常:0位于jsoup.examples.ListLinks.mainListLinks.java:22