【问题标题】:How parse the jsoup Elements attributes?如何解析 jsoup Elements 属性?
【发布时间】:2018-08-17 05:36:25
【问题描述】:

页面中有第二个 html 块:

<div class="card card-hover card-visited wordwrap job-link js-hot-block">
    <img width="100" height="50" alt="Micro Focus" class="preview-img preview-img-logo" src="//i.work.ua/employer_design/3/4/6/106346_company_logo_3.png">
    <h2 class="add-bottom-sm"><a href="/jobs/2052763/" title="Java Full-stack developer, вакансия от 10 августа 2018">Java Full-stack developer</a></h2>
    <span><b>Micro Focus</b></span>&nbsp;
    <span>· </span>
    <span>Киев&nbsp;· </span>
    <span><span class="label label-hot">Горячая</span></span>
    <p class="overflow"> Полная занятость. Опыт работы от 2 лет. Высшее образование.
    <br> SERENA Software (www.serena.com), part of&nbsp;MicroFocus group, is&nbsp;the global leader in&nbsp;Application Lifecycle…<a href="/jobs/2052763/"><span class="glyphicon glyphicon-chevron-right"></span></a></p>
</div>

如何满足条件,使用jsoup:

如果 href 等于“/jobs/2052763/”,则返回“Micro Focus”?

我可以找到 href "/jobs/2052763/" 并且可以找到 "Micro Focus" (element/attr("alt")),但不能相互绑定。

【问题讨论】:

    标签: java html jsoup


    【解决方案1】:

    试试这个

    Elements result =
      doc.select("h2:has(a[href*=\"/jobs/2052763/\"]) + span > b");
    

    选择子级 (&gt;) b 的前同级 (+) spanh2 具有 (:has(...)) a 属性 href/jobs/2052763/ (@9876 )。

    【讨论】:

    • 哇,我喜欢!
    【解决方案2】:

    找到&lt;a&gt;,向上移动两个父母并选择img

    Element link = doc.selectFirst("a[href=/jobs/2052763/]");
    System.out.println(link.parent().parent().selectFirst("img").attr("alt"));
    

    【讨论】:

    • 超级方法!但是文档类(?)中不存在 selectFirst(),但是 select() 可以正常工作。谢谢!
    • 使用.select(...).first() 或升级你的Jsoup。
    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多