2014-11-18 3 views
0

Я хочу выбрать <div class="article_text">some long text </div> с Jsoup.Выберите div -class tag с помощью Jsoup с Java

String url = "computerworld.bg/45781_sofiya_teh_park_tryabva_da_bade_zavarshen_do_kraya_na_2015_g"; 
Document document = Jsoup.parse(new URL(url).openStream(), "ISO-8859-1", url); 
Elements elements = document.select("div.article_text"); 

Затем я хочу перебрать элементы и получить текст. Но div не выбран. Если я только пытаюсь использовать div как css-селектор, отображается правильная текстовая информация, но есть и другие не соответствующие тексты divs, поэтому я должен использовать имя класса.

Где моя ошибка?

ответ

2

documentation, очевидно, говорит, что это нормально.

Element masthead = doc.select("div.masthead").first(); // div with class=masthead 

Так, думаю, _ вызывает проблемы. Попробуйте с div[class=article_text] в качестве селектора, и если это не сработает, то div[class^=article] (класс начинается со статьи), но он может выбрать больше, чем вы хотели бы.

UPDATE

div.article_text работы на интернет-тестер Jsoup (http://try.jsoup.org/) с URL из вашего кода. Возможно, проблема заключается в том, как вы получаете документ. This example использует Jsoup.connect()

Document doc = Jsoup.connect("http://www.computerworld.bg/45781_sofiya_teh_park_tryabva_da_bade_zavarshen_do_kraya_na_2015_g").get(); 

UPDATE 2

Оказывается, именно этот URL возвращает различное содержимое на основе агента пользователя (без набора агента пользователя, article_text нет на этой DIV), поэтому просто установите userAgent в , например, Mozilla, и он будет работать.

Jsoup.connect("http://www.computerworld.bg/45781_sofiya_teh_park_tryabva_da_bade_zavarshen_do_kraya_na_2015_g").userAgent("Mozilla").get(); 
+0

Оба способа не работают. Если я перебираю все элементы и печатаю их классы, я видел, что класс элементов div не имеет имени. И я думаю, что это вызывает проблему. – Xelian

+1

@Xelian Проверьте мой обновленный ответ. –

+0

Если я попробую: Документ doc = Jsoup.connect ("http://www.computerworld.bg/45781_sofiya_teh_park_tryabva_da_bade_zavarshen_do_kraya_na_2015_g") .get(); System.out.println (doc.select ("div.article_text"). First()); использованием org.jsoup jsoup 1.8.1 Результат нулевой снова – Xelian

Смежные вопросы