Мой код ничего не возвращает, когда я просматриваю элементы на веб-сайте. Я успешно сканировал таблицы на этом веб-сайте ранее. Однако я не могу извлечь код из этих «динамических таблиц» на fantasy.premierleague.com.Нахождение сложного извлечения данных из таблицы (JSoup)
http://i.imgur.com/cHkFwHE.png < Фотографии, которые я пытаюсь извлечь.
Кроме того, мои данные для входа в систему законно отображаются в коде, поэтому вы, ребята, можете войти с помощью моих учетных данных и сами убедиться, что происходит. (obv - запасной демо-счет).
public class StatsCollector {
public static void main (String [] args){
try {
String url = "https://users.premierleague.com/PremierUser/j_spring_security_check";
Response res = Jsoup
.connect(url)
.followRedirects(false)
.timeout(2_000)
.data("j_username", "<[email protected]>")
.data("j_password", "<fantasy123>")
.method(Method.POST)
.execute();
Map<String, String> loginCookies = res.cookies();
String url1 = "http://fantasy.premierleague.com/stats/elements/?page=1" ;
Document doc = Jsoup.connect
(url1)
.cookies(loginCookies)
.get();
for (Element table: doc.select("table.ismEiwMatchesPast")) {
for (Element tbody: table.select("tbody.ismHistoryPastSeasons")) {
for (Element row: table.select("tr")){
Elements tds = row.select("td");
if (tds.size()>2){
System.out.println(tds.get(0).text() + " : " + tds.get(1).text() + " : " + tds.get(2).text());
}
}
}
}
}
catch (IOException ex) {
Logger.getLogger(StatsCollector.class.getName()).log(Level.SEVERE,null,ex);
}
}
}
Я не вошел в систему как вы, но мне кажется, что эти таблицы, вероятно, генерируются динамически через AJAX. Вероятно, вам следует попытаться извлечь данные этого вызова AJAX (обычно JSON или XML-данные), а не HTML, который генерируется javascript. – durron597
@hisham mohammed, прежде чем вы попытаетесь получить jtable, сначала попробуйте подключиться к странице. Попробуйте 'res', чтобы увидеть, что такое ответ. –