我正在尝试从HTML解析数据。我需要从内部div class = vacancy-item获取具有不同idnames的所有名称。 请在下面查看HTML代码
<section class="home-vacancies" id="vacancy_wrapper">
<div class="home-block-title">job openings</div>
<div class="vacancy-filter">
...................
</div>
<div class="vacancy-wrapper">
<div class="vacancy-item" data-id="9120">
..............
</div>
<div class="vacancy-item" data-id="9119">
..................
</div>
<div class="vacancy-item" data-id="9118">
................................
</div>
<div class="vacancy-item" data-id="9117">
.............................
</div>
这是我的代码: 请帮忙。
doc = Jsoup.connect("URL").get();
//title = doc.select(".page-content div:eq(3)");
title = doc.getElementsByClass("div[class=vacancy-wrapper]");
titleList.clear();
for (Element titles : title) {
String text = titles.getElementsB("vacancy-item").text();
titleList.add(text);
}
谢谢!
答案 0 :(得分:2)
您只能使用class
查询getElementByClass
属性,例如getElementByClass("vacancy-wrapper")
会奏效。
您还需要第二个循环来将每个vacancy-item
文本作为单独的元素:
Elements title = doc.getElementsByClass("vacancy-wrapper");
for (Element titles : title) {
Elements items = titles.getElementsByClass("vacancy-item");
for (Element item : items) {
String text = item.text();
// process text
}
}
另一种选择是使用Jsoup的select
方法:
Elements es = doc.select("div.vacancy-wrapper div.vacancy-item");
for (Element vi : es) {
String text = vi.text());
// process text
}
这将选择div
属性class
下vacancy-item
属于div
class
属性vacancy-wrapper
的所有{{1}}元素。< / p>