【问题标题】:Extract Table data within div using Jsoup使用 Jsoup 提取 div 中的表数据
【发布时间】:2015-06-26 07:52:26
【问题描述】:

我已经尝试了所有方法来获取div标签的表格数据,但没有成功。当我查看源代码时,我能够看到表格的值。但是当我运行以提取值时,甚至无法识别该表。表格在这个 div 标签内。

<div xmlns:saxon="http://saxon.sf.net/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:fo="http://www.w3.org/1999/XSL/Format">

我尝试过的方法。

Element table = doc.select("table").first();
Elements rows = table.select("tr");
for (int i = 1; i < rows.size(); i++) { 
    Element row = rows.get(i);
    Elements tds = row.select("td");
    System.out.println(tds.get(0).text() + ":" + tds.get(1).text());
}

我尝试过按类、标签等获取表格。这与 div 标签有什么关系吗?

【问题讨论】:

  • 您确定它是文档中的第一个表格吗?当您使用命令行工具(例如 curl、wget)而不是浏览器下载页面时,表格是否存在?
  • 这是第一张桌子。但是当我使用 wget 下载时,我无法查看。这是为什么。当我查看源代码时,我可以看到它。有没有办法拉取这张表的数据?
  • 可能是表只用某个用户代理发送(尝试使用wget时发送和浏览器一样的用户代理),也可能是表只在某个用户代理发送cookie 被发送,或者当用户登录到站点时。在这种情况下,您需要发送所需的 cookie。
  • 我正在尝试拉出此页面中的表格。此页面无需登录。 cmegroup.com/market-data/volume-open-interest/…
  • 数据不在页面中。它由 Javascript 填充。我不知道你为什么说你可以在视图源中看到表格。也许您将“查看源代码”(显示浏览器下载的真实源代码)与“检查器”或 Firebug 视图混淆了,后者显示当前文档,包括 Javascript 所做的添加。数据不在页面中。您将无法使用 JSoup 获得它。

标签: java html web-scraping jsoup


【解决方案1】:

Duffydake提供的解决方案:

您几乎可以使用任何语言进行此操作。有两种解决方案,使用“phantomjs”之类的东西来获取“真实”页面(使用 javascript 解释)或使用 URL

OP 回复:

谢谢.. 我需要检查 phantomjs.. 但是使用其他 url 我可以提取值。现在只需要格式化它。

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多