【问题标题】:Jsoup css selector "not", not return anythingJsoup css选择器“不”,不返回任何东西
【发布时间】:2020-10-29 19:11:34
【问题描述】:

我试图忽略一个项目而不是在 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>

【问题讨论】:

    标签: java jsoup


    【解决方案1】:

    如果我调试您的代码并提取 HTML:

    System.out.println(document.select("div.page-item-detail").get(0))(提示在 IntelliJ IDEA 中使用表达式求值器(Alt+F8 - 用于会话中的实时调试)

    我明白了:

    <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 标记,并使用包含 item-thumbclass ... 但前提是 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])")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多