我正在使用jsoup解析表。我需要从以下网站连接到部门常规表:https://www.basketball-reference.com/leagues/NBA_2006.html。不知道如何解析表格,因为我需要为每个部门站立表格使用相同的方法,但是对于较旧的季节(例如id="divs_standings_W"
,"id="divs_standings_E"
和"id="divs_standings_"
,id是不同的。链接到较旧的季节:https://www.basketball-reference.com/leagues/NBA_1950.html。
如何检查具有给定id的表是否存在并将其放在变量表中?没有太多相关代码。
Document doc = Jsoup.connect("https://www.basketball-reference.com/leagues/NBA_1950.html").get();
Elements table = doc.select("table[id=\"divs_standings_\"]");
答案 0 :(得分:1)
您可以只使用prefix matching。使用table[id^="divs_standings_"]
。这将匹配所有表,其ID以divs_standings_
开头:
Document doc = Jsoup.connect("https://www.basketball-reference.com/leagues/NBA_1950.html").get();
Element table = doc.selectFirst("table[id^=\"divs_standings_\"]");
这将适用于新旧季节。
要将其包装在方法中,您可以使用类似以下的内容:
private static void processTable(String url) throws IOException {
Document doc = Jsoup.connect(url).get();
Element table = doc.selectFirst("table[id^=\"divs_standings_\"]");
System.out.println(table);
}
并使用两个网址调用它:
processTable("https://www.basketball-reference.com/leagues/NBA_1950.html");
processTable("https://www.basketball-reference.com/leagues/NBA_2006.html");
如果您具有更复杂的ID,也可以使用模式匹配。查看上面的链接。