如何知道我的 Jsoup 元素是否被正确选择

How to know if my Jsoup element is being properly selected

我正在尝试调试我遇到的问题。我正在使用以下代码尝试将 link 获取到页面上的图像。

private class DownloadWebpageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... args) {
    String urls = args[0];
    Document doc = null;
    try {
        doc = Jsoup.connect(urls).ignoreContentType(true).get();
        image = doc.select("img[src~=(?i)\.(png|jpe?g|gif)]").last();
        theurlstring = "test " + image.attr("src"); // I put test here to make sure it is being executed
    } catch (IOException e) {
        e.printStackTrace();
    }


    return urls;
}
}

我试图从元素 "image." 中获取 link 的任何方式通常都会出错,它说

Attempt to invoke virtual method 'java.lang.String org.jsoup.nodes.Element.attr(java.lang.String)' on a null object reference

因此,由于该错误,我现在认为未正确选择图像。有没有人看到任何看起来不对劲的东西?或者我怎样才能更好地查明问题?

您的查询无效,请参阅http://try.jsoup.org/~I4Y0POaloHUtrNTMJO7IAiAUIRY

您可以使用:

image = doc.select("img[src$=.png],img[src$=.gif],img[src$=.jpg],img[src$=.jpeg]").last();

没有那么紧凑,但至少选择了图像(参见 http://try.jsoup.org/~kjnlfvCzrxiqaGQqwcszLZswSNg)。

如果错误仍然存​​在,请将 try.jsoup.org 与您的来源 url 一起使用以验证接收到的 html 中是否呈现了预期的输出,以排除 [=23] 的问题=]生成的内容。