0

我有如下所示的 HTML(部分)。我想使用以下方法查找元素:

org.jsoup.nodes.Element elem = doc.getElementById("date-2011-04-23");

但我总是得到一个NULL. 谁能帮我?作为检查,我还使用 VB.NET 对此进行了编码,并且可以访问该元素。

<td class="" id="date-2011-04-23" data-week="3" data-wkday="6">...</td>
4

2 回答 2

0

您没有在 HTML 中找到该内容的原因是,时间表是由执行 Javascript 的浏览器从 JSON 文件加载的,然后将其添加到浏览器 DOM。Jsoup 不执行 Javascript,因此它只能查看源 HTML 中的内容。

如果您使用像 Charles 这样的调试代理(或 Chrome / Firefox 中的调试网络窗格),您可以看到浏览器为呈现页面而发出的所有请求。在此示例中,计划数据来自http://mlb.mlb.com/gen/schedule/phi/2011_4.json

于 2012-12-11T20:01:10.360 回答
0

假设您的标签如下所示:

<td class="" id="date-2011-04-23" data-week="3" data-wkday="6">...</td>

您可以为此使用JSoup Selector API

for( Element element : doc.select("#date-2011-04-23") )
{
    // Do something here
}

如果您只需要第一个元素:

Element element = doc.select("#date-2011-04-23").first();
于 2012-11-25T20:51:08.877 回答