--- см. Обновление ниже ---
Пожалуйста, имейте в виду, что это хрупкое решение, поскольку любое изменение сайта может привести к его поломке.Вы также хотите сделать некоторые проверки ошибок и еще много чего.Кроме того, я не видел текст «6 очков в последних 2 ГП», как у вас выше, но вы можете получить любую статистику, которую вы хотите, используя этот код.Просто замените stats.get(4)
на любое значение.
Document doc = Jsoup.connect("http://forecaster.thehockeynews.com/hockeynews/hockey/statistics.cgi?mlb&mode=hotnot/").get();
for (Element e : doc.select(".FSS-data-row")) {
Element td = e.select("td.FSS-data-left > a").first();
String name = (td != null?td.text():null);
Elements stats = e.select(".FSS-data-right");
String goals = (stats.size() > 0?stats.get(4).text():null);
System.out.println(name + ":" + goals);
}
Пример вывода:
null:null
J. Benn:13
P. Sharp:20
P. Marleau:17
T. Oshie:14
Первый ноль: ноль, потому что это похоже на строку заголовка на странице.1010 *
----- ОБНОВЛЕНИЕ -----
URL, который вы указали в своем сообщении, указал на неправильную страницу.Вот обновленный код, чтобы получить то, что, я думаю, вы хотите ..
Document doc = Jsoup.connect("http://forecaster.thehockeynews.com/hockeynews/hockey/statistics.cgi?&mode=hotnot").get();
for (Element e : doc.select("tr.FSS-data-row-highlight")) {
Element tdname = e.select("td > a").first();
String name = (tdname != null?tdname.text():null);
Element tdstat = e.select("td.FSS-data-right").first();
String stat = tdstat.text();
System.out.println(name + ":" + stat);
}
Пример вывода:
Mathieu Perreault:5 pts in last 2 GP
Mikhail Grabovski:5 pts in last 2 GP
James Neal:4 pts in last 2 GP
Kris Versteeg:4 pts in last 2 GP
Evgeni Malkin:12 pts in last 6 GP