我有下面显示的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>
答案 0 :(得分: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();
答案 1 :(得分:0)
您在HTML中未找到该内容的原因是,浏览器执行Javascript时会从JSON文件加载计划,然后将其添加到浏览器DOM。 Jsoup不执行Javascript,所以它只能看到源HTML中的内容。
如果您使用像Charles这样的调试代理(或Chrome / Firefox中的调试网络窗格),您可以看到浏览器渲染页面的所有请求。在此示例中,计划数据来自http://mlb.mlb.com/gen/schedule/phi/2011_4.json