我正在尝试使用HTML页面中的class = <div>
读取所有"listitem show-in-category"
个。此外,我希望获得itemprop
和itemprop="description"
下的itemprop="image"
字段。 <div>
的示例如下:
<div class="listitem show-in-category">
<img itemprop="image" alt="For the Trumpets Shall Sound" class="poster pull-left" src=
"/images/shows/rectangle-poster/resized/188x282/4423-1390493634-forthetrumpets-rec.jpg"
title="For the Trumpets Shall Sound">
<h2 itemprop="name"><a href=
"http://www.londonboxoffice.co.uk/for-the-trumpets-shall-sound-tickets">
For the Trumpets Shall Sound</a></h2>
<p itemprop="description"><p>Ruth is clearing out her Mother's attic, with the help of her son
Jamie, when they make an interesting discovery.<br>
<br></p>
</div>
在JSOUP selector page上,声明我可以按类名访问所有div:
Elements mydesiredclass = doc.select("div.class")
1)但是,对于上面的类名,这不起作用,可能因为类名有空格?我应该使用什么语法来获取具有给定类名的所有div?
2)此外,一旦我设法获取所有div并循环浏览它们,我如何才能获得description
和img
属性?
答案 0 :(得分:2)
类名中的空格实际上是类名之间的分隔符。所以div是两个类的一部分,即listitem
和 show-in-category
如果必须只选择与两个类匹配的元素,则可以执行以下操作:
Elements mydesiredElems = doc.select("div.listitem.show-in-category")
后跟类名的点是类的css选择器。它们可以连接在一起,这会导致添加此类作为匹配元素的要求。
关于你的第二个问题:Jsoup可以很容易地为你获取img元素。假设myDivEl是你的div之一
Element imgEl = myDivEl.select("img");
String altStr = imgEl.attr("alt");
String titleStr = imgEl.attr("title");
在编辑问题后更新以指出OP想要的内容:
Element itemPropPEl = myDivEl.select("p[itemprop=description]");
String descStr = itemPropPEl.text();