2017-02-16 29 views
0

Я пытаюсь отладить проблему, которую у меня есть. Я использую следующий код, чтобы попытаться получить ссылку на изображение с страницы.Как узнать, правильно ли выбран мой элемент Jsoup

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

Обычно я получаю сообщение об ошибке, с помощью которого я пытаюсь получить ссылку с элемента «Изображение». Он говорит:

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

Таким образом, с этой ошибкой я теперь думаю, что изображение не будет выбрано должным образом. Кто-нибудь видит что-то, что выглядит неправильно? Или как я мог лучше определить проблему?

+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 с исходным URL-адресом, чтобы проверить, что ожидаемый вывод отображается в полученном html, чтобы исключить проблемы с созданным javascript контентом.