2015-07-17 3 views
0

У меня есть эта страница https://rrtp.comed.com/pricing-table-today/, и из этого мне нужно получить информацию о столбце «Время» («Час») и «День-Впереди» по часовой стрелке. Я пробовал использовать следующий код:Сканирование в режиме реального времени с использованием Jsoup

Document doc = Jsoup.connect("https://rrtp.comed.com/pricing-table-today/").get(); 

for (Element table : doc.select("table.prices three-col")) { 
    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()); 
     } 
    } 
} 

, но, к сожалению, я не могу получить нужные мне данные.

Есть ли что-то не так в коде ..? или Эта страница не может сканироваться ...?

Нужна помощь

+2

Вы должны, вероятно, ударил 'https:? //rrtp.comed.com/rrtp/ServletFeed тип = pricingtabledual и дату = 20150717' (обратите внимание, что дата в конце ссылки необходимо). Зачем? Посмотрите на источник страницы (не в инспекторе элементов, но, например, на нажатие ctrl + u или 'view source'). Эти данные динамически загружаются. –

+0

Привет, спасибо за ваш ответ, Но я не знаю, как мы можем получить данные в одиночку, а не с html. i.e Мне нужно сканировать Время и цену. Когда я изменить URL, вывод показывает страницу HTML, как показано ниже, ' 12:00 AM 2,4 ¢ ¢ -0,9 1: 00 AM 2,2 ¢ - 0,5 ¢ 2: 00 .... , но мне нужны данные, чтобы быть как 12:00 AM \t: 2,4 ¢ 1:00 AM \t: 2.2 ¢ ........ ' Спасибо ...! ...! –

ответ

0

Как я уже сказал в комментарии:

Вы должны ударить https://rrtp.comed.com/rrtp/ServletFeed?type=pricingtabledual&date=20150717, потому что это источник, из которого загружается данные на странице вы указали на.

Данные по этой ссылке не являются действительными html-документом (и именно поэтому он не работает для вас), но вы можете легко сделать это «совершенно» правильным.

Все, что вам нужно сделать, это сначала получить ответ и добавить вокруг него теги <table>..</table>, тогда этого достаточно, чтобы разобрать его как документ html.

Connection.Response response = Jsoup.connect("https://rrtp.comed.com/rrtp/ServletFeed?type=pricingtabledual&date=20150717").execute(); 
Document doc = Jsoup.parse("<table>" + response.body() + "</table>"); 

for (Element element : doc.select("tr")) { 
    System.out.println(element.html()); 
} 
Смежные вопросы