gpt4 book ai didi

java - 使用 JSoup 获取表的数据代码值

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:48 25 4
gpt4 key购买 nike

如何使用 JSoup 从表行获取 data-code 值?

这是我尝试过的,但它什么也没打印:

Document doc = Jsoup.connect("http://www.example.com").get();
Elements dataCodes = doc.select("table[class=team-list]");

for (Element dataCode : dataCodes)
{
System.out.println(dataCode.attr("data-code"));
}

HTML 代码如下所示:

<body>
<div id-=""main">
<div id="inner">
<div id="table" class="scores-table">
<table class ="team-list">
<tbody>

<tr data-code="1" class="data odd"></tr>
<tr data-code="2" class="data even"></tr>
<tr data-code="3" class="data odd"></tr>
<tr data-code="1" class="data even"></tr>

</tbody>
</table>
</div>
</div>
</div>

我希望它打印出表格每一行的数据代码值(即团队编号)。

最佳答案

您的选择器应向下至 tr 元素:

Elements dataCodes = doc.select("table.team-list tr");
<小时/>

根据评论,这仍然会导致一个空列表 - 在这种情况下,该表可能是在 JavaScript 逻辑或单独的 AJAX 请求的帮助下动态生成的。

在这种情况下,可能的方法之一是让真正的浏览器处理动态 javascript、AJAX 部分。试试selenium browser automation framework :

WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com");

List<WebElement> elements = driver.findElements(By.cssSelector("table.team-list tr"));

for(WebElement element: elements)
{
System.out.println(element.getAttribute('data-code'));
}

关于java - 使用 JSoup 获取表的数据代码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28622487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com