使用Jsoup和Java选择div-class标记

使用Jsoup和Java选择div-class标记,java,html,class,jsoup,Java,Html,Class,Jsoup,我想选择 一些带有Jsoup的长文本 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_tex

我想选择
一些带有Jsoup的长文本

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文本,因此我必须使用类名

我的错在哪里?

医生显然说没问题

Element masthead = doc.select("div.masthead").first(); // div with class=masthead
因此,我认为是
\uu
造成了这个问题。尝试使用
div[class=article\u text]
作为选择器,如果不起作用,则使用
div[class^=article]
(类以article开头),但它可以选择比您想要的更多的内容

更新

div.article\u text
使用代码中的url在联机Jsoup tester()上工作。也许问题在于你是如何得到这份文件的。使用
Jsoup.connect()

更新2

结果表明,这个特定的url根据用户代理返回不同的内容(如果没有设置用户代理,则该div中不存在
article\u text
),因此只需将
userAgent
设置为,例如,
Mozilla
,它就会工作

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

两种方法都不行。如果我迭代所有元素并打印它们的类,我会看到div元素的类没有名称。我认为这就是问题的原因;System.out.println(doc.select(“div.article_text”).first();使用org.jsoup jsoup 1.8.1,结果再次为空是的,我在那里尝试过,但在本地不起作用?我现在很困惑。@Xelian终于得到了它(不得不下载jsoup来尝试:))。您需要设置用户代理,因为html内容依赖于它。在我的回答中选中
update2
。@Xelian很期待,事实上,不同的浏览器/设备/用户代理需要不同的页面布局。例如,与智能手机浏览器相比,桌面浏览器上的页面看起来不同。定制它的一种方法是通过不同的html。
Jsoup.connect("http://www.computerworld.bg/45781_sofiya_teh_park_tryabva_da_bade_zavarshen_do_kraya_na_2015_g").userAgent("Mozilla").get();