Предварительная загрузка сайта перед извлечением HTML из URL - PullRequest
2 голосов
/ 19 сентября 2019

Я пытаюсь извлечь данные из URL-адреса, но для загрузки необходимой мне информации требуется несколько секунд, и она отображается только как ЗАГРУЗКА в HTML, пока не загрузится, поэтому при использовании этого кода я не могуизвлеките нужные мне данные.

URL url = new URL("https://www.cardservices.uga.edu/fs_mobile/");
URLConnection con = url.openConnection();
InputStream is = con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null){
    System.out.println(lineNumber +": "+ line); 
}

Как мне разрешить загрузку URL-адреса в течение определенного периода времени, прежде чем извлекать из него HTML-код?

Ответы [ 2 ]

2 голосов
/ 19 сентября 2019

Веб-страница, которую вы вызываете, вероятно, вызывает ajax-вызов для извлечения данных, поэтому вы не получите ее, используя ваш подход.

У вас есть 2 варианта для получения этих данных: 1. Используйте insoect браузераэлементы (F12 в Chrome) и на вкладке «сеть», получите этот вызов ajax и используйте его вместо URL-адреса, который вы используете в своем коде. 2. Назовите свой URL-адрес с помощью библиотеки браузера (например, ghoustjs), и после загрузки страницы сканируйтеданные.

ИМО Я бы выбрал вариант 1

0 голосов
/ 19 сентября 2019

Вот рабочая альтернатива,

    URL url = new URL("https://www.cardservices.uga.edu/fs_mobile/index.php/dashboard/occupancies/"); //This is the AJAX call that goes to load the data into webpage. You can get this from inspecting the network calls.
    URLConnection con = url.openConnection();
    InputStream is = con.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String line = null;
    while ((line = br.readLine()) != null){
        System.out.println(line); 
    }

, которая в основном дает ответ JSON, содержащий процент.

Надеюсь, это поможет.

Также вы можете использоватьSelenium для выполнения ожидания, если вам так интересно получить точный вывод HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...