gpt4 book ai didi

java - 如何使用 JSoup 从 Sports Reference 的数据表中检索数据?

转载 作者:行者123 更新时间:2023-11-30 05:20:17 25 4
gpt4 key购买 nike

我正在尝试使用 JSoup 从体育引用表中检索球队的获胜次数。

Specifically, I am trying to receive the following data point highlighted below, with the html code provided

下面是我已经尝试过的,但在尝试访问此元素的文本时出现空指针异常,告诉我我的代码可能无法正确解析 HTML 代码。

Element Wins = document.selectFirst("td[data-stat=\"wins\"]");

我想要的是该元素的文本为 34(或某个数字,具体取决于团队获胜的次数)。

最佳答案

Check what your Document was able to read from page and print it 。如果它包含可以通过浏览器通过JavaScript动态添加的HTML内容,则需要使用Selenium而不是Jsoup作为工具。

For reading HTML source ,你可以写类似:

import java.io.IOException;
import org.jsoup.Jsoup;

public class JSoupHTMLSourceEx {
public static void main(String[] args) throws IOException {
String webPage = "https://www.basketball-reference.com/teams/CHI/2020.html#all_team_misc";
String html = Jsoup.connect(webPage).get().html();
System.out.println(html);
}
}

由于 Jsoup 支持 cssSelector ,您可以尝试获取如下元素:

public static void main(String[] args)  {
String webPage = "https://www.basketball-reference.com/teams/CHI/2020.html#all_team_misc";
String html = Jsoup.connect(webPage).get().html();

Document document = Jsoup.parse(html);
Elements tds = document.select("#team_misc > tbody > tr:nth-child(1) > td:nth-child(2)");
for (Element e : tds) {
System.out.println(e.text());
}
}
<小时/>

但更好的解决方案是使用 Selenium - 用于测试 Web 应用程序的可移植框架 (more details about Selenium tool):

public static void main(String[] args) {
String baseUrl = "https://www.basketball-reference.com/teams/CHI/2020.html#all_team_misc";
WebDriver driver = new FirefoxDriver();

driver.get(baseUrl);
String innerText = driver.findElement(
By.xpath("//*[@id="team_misc"]/tbody/tr[1]/td[1]")).getText();
System.out.println(innerText);
driver.quit();
}
}

您也可以尝试代替:

driver.findElement(By.xpath("//*[@id="team_misc"]/tbody/tr[1]/td[1]")).getText(); 

in this form :

driver.findElement(By.xpath("//[@id="team_misc"]/tbody/tr[1]/td[1]")).getAttribute("innerHTML");
<小时/>

附注将来,从您想要获取信息或至少是 DOM 结构片段而不是图像的位置添加源链接将会很有用。

关于java - 如何使用 JSoup 从 Sports Reference 的数据表中检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59699079/

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