【问题标题】:How to get the text within a <span> tag knowing its ID with java and jsoup?如何使用 java 和 jsoup 获取 <span> 标记中的文本知道其 ID?
【发布时间】:2013-10-06 03:50:05
【问题描述】:

我想获取标签内的文本。我知道它的 id,即“lblCompra”和“lblVenta”。

    Document doc = Jsoup.connect("http://www.bccr.fi.cr//").get();
    Element compra = doc.getElementById("lblCompra");
    Element venta = doc.getElementById("lblVenta");   
    System.out.println(compra);
    System.out.println(venta);

但我得到的是一堆我不需要的文本。这是输出:

<span id="lblCompra"> <img src="images/waiting.gif" alt="cargando" /> </span>
<span id="lblVenta"> <img src="images/waiting.gif" alt="cargando" /> </span>

我应该得到的是“400.0”和“450.0”或类似的东西。

【问题讨论】:

  • 为什么你期望 gettig 400 或 450 而在 span 标签中有图像?
  • 你从这个网址bccr.fi.cr得到什么?
  • 网站的实际 HTML 代码状态为 '493,51' 但我得到的是 gif 图像。身份证:s
  • @anulik 我正在尝试获取右中面板的前 2 个数字。在“tipo de cambio y taza”下方
  • 我认为关键在于该网页中的信息是通过 AJAX 加载的,这就是为什么你会得到这张图片 bccr.fi.cr/images/waiting.gif ,如果内容是用 AJAX 来的,那就不可能了在 SEO 中也看到了原因,AJAX 上下文不再被索引,我这么认为

标签: java html parsing jsoup


【解决方案1】:

如果您使用 getElementById() ...您将获得该元素。现在您有了元素,可以从元素中获取值。使用getValue()方法获取值

【讨论】:

  • 我找不到那个方法。我找到了一个 .data() 但仍然。我认为我的错误是返回正确的元素,但我不知道为什么:/
  • 由于您是 java 新手,请确保您导入了正确的元素类。 Element 类应该是 org.jdom 包
【解决方案2】:

为了获取元素的文本值,请尝试使用text() 方法:

System.out.println(compra.text());

更新:您要查找的值由 JavaScript 加载。 咨询此topic

【讨论】:

  • 我试过了,但它返回一个空格。我猜因为返回值是跨度类中的 gif 图像(IDK 为什么因为实际的 HTML 行声明 493,51 ),所以获取文本是无意义的,因为有是没有文字。我认为我得到了错误的元素
  • Element compra = doc.getElementById("#lblCompra");的ID前为什么要加标签?你试过getElementById("lblCompra")吗?
  • 是的,那是我的错误。是的,我已经尝试过了,但我仍然得到一个 gif 图像而不是一些文本:s
  • 好的 @Limbo 你是对的。我在那个 ID 下找到了该死的 gif 图像哈哈。你知道我怎么能说他们是一个 DIV 类“myclass”的孩子?
  • 其实问题是你需要的值不在页面的源中,可能是Javascript加载的,所以jsoup在源中看不到493.51。看看这个:stackoverflow.com/questions/14904776/…
【解决方案3】:

也许doc.getElementById("#lblCompra").innerHTML 会起作用?

或者如果你想得到img的宽高,你可以这样做:

doc.getElementById('#lblCompra').getElementsByTagName('img')[0].width;

【讨论】:

  • 我如何使用 jquery?请注意,我使用的是 netbeans,我是 java 新手
  • 哦,我坚持你使用 JSP
  • 那么也许 doc.getElementById("#lblCompra").innerHTML 会起作用?
  • 对不起,还有一件事我不明白,你提到“我想在标签中获取文本”但是你把 img 放在你的跨度中,你在说什么文本关于?
  • 是的,没错。 html 状态为“493,51”,但我得到一个 gif 图像,我不知道为什么:s
猜你喜欢
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 2013-04-03
  • 2012-09-05
  • 2021-07-26
  • 2013-05-22
  • 2019-09-05
  • 1970-01-01
相关资源
最近更新 更多