如何通过 jsoup 解析 div 中的特定元素?
How to parce by jsoup for specific element from div?
我在 div "td_module_5".
中有一个标题为“.entry-title”的网站
我用jsoup“.entry-title”写了一个parcing代码,但是这个"entry-title"包含在另一个div中,例如"td_mega_menu".
doc = Jsoup.connect(blogUrl).get();
title = doc.select(".entry-title");
titleList.clear();
for (Element titles : title) {
titleList.add(titles.text());
}
} catch (IOException e) {
e.printStackTrace();
}
如何仅从 div "td_module_5" 中通过 jsoup ".entry-title" 进行解析?
示例html-code:
<div class="td_module_5 td_module_wrap td-animation-stack" >
<div class="td-module-image td-module-image-float">
<div class="td-module-thumb"><a class="td-admin-edit" href="https://unspecific.ru/wp-admin/post.php?post=7148&action=edit">edit</a><a href="https://unspecific.ru/bakteriofagi-smogut-vylechit-nyak-i-bk/" rel="bookmark" title="Бактериофаги смогут вылечить НЯК и БК?"><img width="260" height="195" class="entry-thumb" src="https://unspecific.ru/wp-content/uploads/2018/07/bacf-260x195.jpg" srcset="https://unspecific.ru/wp-content/uploads/2018/07/bacf-260x195.jpg 260w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-300x225.jpg 300w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-80x60.jpg 80w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-245x184.jpg 245w, https://unspecific.ru/wp-content/uploads/2018/07/bacf.jpg 640w" sizes="(max-width: 260px) 100vw, 260px" alt="Бактериофаг и бактерия" title="Бактериофаги смогут вылечить НЯК и БК?"/></a></div> </div>
<div class="td-item-details td-category-small">
<a href="https://unspecific.ru/category/news/" class="td-post-category">Новости в лечении ВЗК</a>
<h3 class="entry-title td-module-title"><a href="https://unspecific.ru/bakteriofagi-smogut-vylechit-nyak-i-bk/" rel="bookmark" title="Бактериофаги смогут вылечить НЯК и БК?">Бактериофаги смогут вылечить НЯК и БК?</a></h3>
您可以使用以下 css 路径 select 或 :
Element title = doc.select("div > .entry-title").first();
System.out.println(title.text());
或者,如果您想查找所有标题:
Elements titles = doc.select("div > .entry-title");
for (Element title: titles) {
System.out.println(title.text());
}
在你的情况下,因为你想 select 下特定 div 与特定 css class 你应该使用下面:
Elements titles = doc.select("div.td_module_5.td_module_wrap.td-animation-stack > div > .entry-title");
for (Element title: titles) {
System.out.println(title.text());
}
输出为:
Бактериофаги смогут вылечить НЯК и БК?
我在 div "td_module_5".
中有一个标题为“.entry-title”的网站我用jsoup“.entry-title”写了一个parcing代码,但是这个"entry-title"包含在另一个div中,例如"td_mega_menu".
doc = Jsoup.connect(blogUrl).get();
title = doc.select(".entry-title");
titleList.clear();
for (Element titles : title) {
titleList.add(titles.text());
}
} catch (IOException e) {
e.printStackTrace();
}
如何仅从 div "td_module_5" 中通过 jsoup ".entry-title" 进行解析?
示例html-code:
<div class="td_module_5 td_module_wrap td-animation-stack" >
<div class="td-module-image td-module-image-float">
<div class="td-module-thumb"><a class="td-admin-edit" href="https://unspecific.ru/wp-admin/post.php?post=7148&action=edit">edit</a><a href="https://unspecific.ru/bakteriofagi-smogut-vylechit-nyak-i-bk/" rel="bookmark" title="Бактериофаги смогут вылечить НЯК и БК?"><img width="260" height="195" class="entry-thumb" src="https://unspecific.ru/wp-content/uploads/2018/07/bacf-260x195.jpg" srcset="https://unspecific.ru/wp-content/uploads/2018/07/bacf-260x195.jpg 260w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-300x225.jpg 300w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-80x60.jpg 80w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-245x184.jpg 245w, https://unspecific.ru/wp-content/uploads/2018/07/bacf.jpg 640w" sizes="(max-width: 260px) 100vw, 260px" alt="Бактериофаг и бактерия" title="Бактериофаги смогут вылечить НЯК и БК?"/></a></div> </div>
<div class="td-item-details td-category-small">
<a href="https://unspecific.ru/category/news/" class="td-post-category">Новости в лечении ВЗК</a>
<h3 class="entry-title td-module-title"><a href="https://unspecific.ru/bakteriofagi-smogut-vylechit-nyak-i-bk/" rel="bookmark" title="Бактериофаги смогут вылечить НЯК и БК?">Бактериофаги смогут вылечить НЯК и БК?</a></h3>
您可以使用以下 css 路径 select 或 :
Element title = doc.select("div > .entry-title").first();
System.out.println(title.text());
或者,如果您想查找所有标题:
Elements titles = doc.select("div > .entry-title");
for (Element title: titles) {
System.out.println(title.text());
}
在你的情况下,因为你想 select 下特定 div 与特定 css class 你应该使用下面:
Elements titles = doc.select("div.td_module_5.td_module_wrap.td-animation-stack > div > .entry-title");
for (Element title: titles) {
System.out.println(title.text());
}
输出为:
Бактериофаги смогут вылечить НЯК и БК?