Jsoup css 选择器 "not",而不是 return 任何东西
Jsoup css selector "not", not return anything
我试图忽略一个项目而不是在 Jsoup 上解析它
但是 css 选择器“不”,不工作!
我不明白哪里出了问题??
我的代码:
MangaList list = new MangaList();
Document document = getPage("https://3asq.org/");
MangaInfo manga;
for (Element o : document.select("div.page-item-detail:not(.item-thumb#manga-item-5520)")) {
manga = new MangaInfo();
manga.name = o.select("h3").first().select("a").last().text();
manga.path = o.select("a").first().attr("href");
try {
manga.preview = o.select("img").first().attr("src");
} catch (Exception e) {
manga.preview = "";
}
list.add(manga);
}
return list;
html代码:
<div class="col-12 col-md-6 badge-pos-1">
<div class="page-item-detail manga">
<div id="manga-item-5520" class="item-thumb hover-details c-image-hover" data-post-id="5520">
<a href="https://3asq.org/manga/gosu/" title="Gosu">
<img width="110" height="150" src="https://3asq.org/wp-content/uploads/2020/03/IMG_4497-110x150.jpg" srcset="https://3asq.org/wp-content/uploads/2020/03/IMG_4497-110x150.jpg 110w, https://3asq.org/wp-content/uploads/2020/03/IMG_4497-175x238.jpg 175w" sizes="(max-width: 110px) 100vw, 110px" class="img-responsive" style="" alt="IMG_4497"/> </a>
</div>
<div class="item-summary">
<div class="post-title font-title">
<h3 class="h5">
<a href="https://www.noal0.tk/" target="_blank"><span class="manga-title-badges custom noal-manga">Noal-Manga</span></a> <a href="https://3asq.org/manga/gosu/">Gosu</a>
</h3>
如果我调试你的代码并提取 HTML for:
System.out.println(document.select("div.page-item-detail").get(0))
(提示使用 IntelliJ IDEA 中的表达式求值器(Alt
+F8
- 用于 in-session、real-time 调试)
我得到:
<div class="page-item-detail manga">
<div id="manga-item-2003" class="item-thumb hover-details c-image-hover" data-post-id="2003">
<a href="http...
...
</div>
</div>
</div>
您似乎想提取下一个 div
标签,其中 class
包含 item-thumb
...但前提是 ID 不是 manga-item-5520
。
这就是我删除那一项的操作
document.select("div.page-item-detail div[class*=item-thumb][id!=manga-item-5520]")
结果大小:19
包含元素:
document.select("div.page-item-detail div[class*=item-thumb]")
结果大小:20
如果您想继续基于外部 div
标签而不是内部 div
标签,您也可以尝试以下方法。
document.select("div.page-item-detail:has(div[class*=item-thumb][id!=manga-item-5520])")
我试图忽略一个项目而不是在 Jsoup 上解析它 但是 css 选择器“不”,不工作! 我不明白哪里出了问题??
我的代码:
MangaList list = new MangaList();
Document document = getPage("https://3asq.org/");
MangaInfo manga;
for (Element o : document.select("div.page-item-detail:not(.item-thumb#manga-item-5520)")) {
manga = new MangaInfo();
manga.name = o.select("h3").first().select("a").last().text();
manga.path = o.select("a").first().attr("href");
try {
manga.preview = o.select("img").first().attr("src");
} catch (Exception e) {
manga.preview = "";
}
list.add(manga);
}
return list;
html代码:
<div class="col-12 col-md-6 badge-pos-1">
<div class="page-item-detail manga">
<div id="manga-item-5520" class="item-thumb hover-details c-image-hover" data-post-id="5520">
<a href="https://3asq.org/manga/gosu/" title="Gosu">
<img width="110" height="150" src="https://3asq.org/wp-content/uploads/2020/03/IMG_4497-110x150.jpg" srcset="https://3asq.org/wp-content/uploads/2020/03/IMG_4497-110x150.jpg 110w, https://3asq.org/wp-content/uploads/2020/03/IMG_4497-175x238.jpg 175w" sizes="(max-width: 110px) 100vw, 110px" class="img-responsive" style="" alt="IMG_4497"/> </a>
</div>
<div class="item-summary">
<div class="post-title font-title">
<h3 class="h5">
<a href="https://www.noal0.tk/" target="_blank"><span class="manga-title-badges custom noal-manga">Noal-Manga</span></a> <a href="https://3asq.org/manga/gosu/">Gosu</a>
</h3>
如果我调试你的代码并提取 HTML for:
System.out.println(document.select("div.page-item-detail").get(0))
(提示使用 IntelliJ IDEA 中的表达式求值器(Alt
+F8
- 用于 in-session、real-time 调试)
我得到:
<div class="page-item-detail manga">
<div id="manga-item-2003" class="item-thumb hover-details c-image-hover" data-post-id="2003">
<a href="http...
...
</div>
</div>
</div>
您似乎想提取下一个 div
标签,其中 class
包含 item-thumb
...但前提是 ID 不是 manga-item-5520
。
这就是我删除那一项的操作
document.select("div.page-item-detail div[class*=item-thumb][id!=manga-item-5520]")
结果大小:19
包含元素:
document.select("div.page-item-detail div[class*=item-thumb]")
结果大小:20
如果您想继续基于外部 div
标签而不是内部 div
标签,您也可以尝试以下方法。
document.select("div.page-item-detail:has(div[class*=item-thumb][id!=manga-item-5520])")