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

时间:2017-02-16 04:21:53

标签: android image parsing jsoup element

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

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

我通常会以任何方式从Element&#34;图像中获取链接时收到错误。&#34;它说

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

所以有了这个错误,我现在认为没有正确选择图像。有人看到任何看起来不对的东西吗?或者我怎样才能更好地查明问题?

1 个答案:

答案 0 :(得分:0)

您的查询无效,请参阅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与源网址一起使用,以验证预期的输出是否在收到的html中呈现,以排除javascript生成内容的问题。