url - Проблема со скачиванием веб страницы


1

требуется получить информацию со страницы "https://www.fonbet.ru/#!/bets/football", но у меня всё это дело никак не получается. Т.е. получается, но таблица матчей не считывается. Пробовал использовать Jsoup

Document doc = Jsoup.connect("https://www.fonbet.ru/#!/bets/football").get();
String text = doc.body().text();

И так же пробовал через URL

URL url = new URL("https://www.fonbet.ru/#!/bets/football");
    BufferedReader reader = new BufferedReader(
            new InputStreamReader(url.openConnection().getInputStream(), "UTF-8"));
    while (true) {
        String line = reader.readLine();
        if (line == null)
            break;

Прошу совета от вас. Спасибо за внимание.

Источник
  •  77
  •  1
  • 19 янв 2018 2018-01-19 13:23:48
Посмотрел какие запросы на том сайте ходят и самый жирный (1.24 мб) имеет кучу интересных данных в JSON. Скорее всего там и будет информация из таблицы: line31.bkfon-resource.ru/line/currentLine/ru . — 21 янв 20182018-01-21 11:02:27.000000
Если подгрузка делается скриптами, то скорее всего через ajax. Вы можете через панель разработчика браузера (F12) на вкладке сети посмотреть какой запрос посылаются для получения таблицы и самому его вызвать — 21 янв 20182018-01-21 09:46:19.000000
Добро пожаловать в Web 2.0, где данные чаще подгружаются javascriptом, чем в разметке. — 20 янв 20182018-01-20 02:31:30.000000

1 ответ

1

Проблема в том, что твой сайт написан на реакте. Просто загрузить такую страницу недостаточно, т.к. на загруженной странице есть js код, который должен выполнится на стороне клиента и загрузить таблицу.

Варианты реализации твоей задачи:

  1. Эмулировать веб клиент (например с помощью selenium webdriver или HtmlUnit)
  2. Выполнить js код напрямую из java кода (с этим может справится, к примеру Rhino)
  • 21 янв 2018 2018-01-21 09:17:01