当前位置: 首页 > 知识库问答 >
问题:

JSoup - get href

郎华皓
2023-03-14

我有这个html代码,我需要得到链接

<div class="squaresContent narrow">
  <input type="hidden" id="category_path" value="1_Komputery > Części i obudowy komputerowe > Dyski twarde" />
  <div class="productItem  first2Col first3Col first4Col first">
    <a class="productItemContent withNames  productsView" href='http://www.okazje.info.pl/km/komputery/samsung-ssd-850-evo-250gb-sata3-2-5-mz-75e250b-eu.html'>

我接下来做:

String ref = null;
for (Element el : doc.getElementsByClass("squaresContent narrow")) {
    for (Element elem : el.getElementsByClass("productItem  first2Col first3Col first4Col first")
            .select("a")) {
        ref = elem.attr("abs:href");
    }
}

但这不是工作。< br >我该怎么办?

共有1个答案

贲培
2023-03-14

getElementsByClass只能使用一个类名作为参数。如果您需要多个类名,您可以使用css选择器语法,其中类名由. class name指定,即dot后跟类名:

String ref = null;
for (Element el : doc.select(".squaresContent.narrow")) {
  for (Element elem : el.select(".productItem.first2Col.first3Col.first4Col.first a")) {
    ref = elem.attr("abs:href");
  }
}

顺便说一句:你的循环运行效率不是很高。如果在外循环或内循环中发现不止一个匹配的元素,则覆盖ref变量。一种更优雅的方式可能是:

String ref = null;
try{
    Element aEl = doc.select(".squaresContent.narrow").last()
          .select(".productItem.first2Col.first3Col.first4Col.first a").last();
    ref = aEl.attr("abs:href");
}
catch (NullPointerException e){
    e.printStackTrace();
}

您需要try catch,因为可能没有任何匹配的元素,这会导致NPE。

 类似资料:
  • 当我解析本地HTML文件时,jsoup将锚元素中的引号改为 假设我想将下面HTML部分中的值“一”改为“二”: 我得到的是: 锚点元素内的引号是必需的。我的代码现在看起来像这样: 我试过了 没有成功。 我可以用jsoup实现这一点吗?我必须使用不同的解析器吗?那看起来会是什么样子。 提前非常感谢你。

  • jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM、CSS 以及类似于 JQuery 的操作方法来取出和操作数据。 本站使用 jsoup 来解析 HTML。 jsoup的主要功能如下: 从一个URL,文件或字符串中解析HTML; 使用DOM或CSS选择器来查找、取出数据; 可操作HTML元素、属性、文

  • 主要内容:1 通过 maven pom.xml 文件,2 通过下载jsoup.jar文件要运行任何 jsoup 程序,您需要安装 jsoup。本教程用的版本是1.8.1。 jsoup 有两种安装方式: 通过 maven pom.xml 通过jsoup.jar 文件。 1 通过 maven pom.xml 文件 目前maven广泛用于java开发。所以我会推荐你​​使用 maven 来开发 jsoup 应用程序。 要使用 maven 安装 jsoup,请在 pom.xml 文件中添加给

  • Jsoup 是一个基于 Java 的库,用于处理基于 HTML 的内容。它提供了一个非常方便的 API 来提取和操作数据,使用最好的 DOM、CSS 和类似 jquery 的方法。它实现了 WHATWG HTML5 规范,并将 HTML 解析为与现代浏览器相同的 DOM。 Jsoup 库实现了 WHATWG HTML5 规范,并将 HTML 内容解析为与现代浏览器相同的 DOM。 Jsonp 库提

  • 在少数情况下,我会传递JSON,其中包含用户执行某些操作的页面url。该页面url将有那些查询字符串部分,我需要为用户重定向到相同的页面时,从我的应用程序要求。我的JSON会像 但是当我通过运行这个json时,我看到

  • 我正在尝试使用jSoup刮一个网站,有以下内容。我对jSoup很陌生,还在想办法。我想做的是能够采取的产品名称和价格,并把他们放入一个excel文件的名称在A列和价格在B列,0.00可以忽略或放在C列,无论什么更容易。任何帮助都将是伟大的,因为我知道有人会问,这不是一个家庭作业。 谢谢提前,我真的很感激。 **这是否是表元素,因为这是列表前的“表”代码,如果不是,我应该在html代码中查找什么?