Как загрузить все записи в бесконечной прокрутке (ленивая загрузка) для разбора HTML в Java - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть проблема при использовании Jsoup для сканирования веб-сайта, который использует ленивую загрузку, и Jsoup не может получить доступ к достаточному количеству необходимого мне контента. Есть ли способы решить это?

Я использую Селен и FirefoxDriver, чтобы получить, но этого недостаточно

System.setProperty("webdriver.gecko.driver", "C:\\Users\\ADMIN\\Downloads\\Compressed\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);   
WebDriver driver = new FirefoxDriver();
driver.get(URL);

1 Ответ

0 голосов
/ 03 октября 2019

В основном, фраза, которую вы используете «отложенная загрузка», звучит так, будто сайт заставляет AJAX перезванивать на сервер, чтобы получить контент, отображаемый в вашем браузере. Я провел много разборов веб-страниц, но на самом деле выполнение Java-Script (изначально, как это делает браузер) - это еще не то, что я могу сделать с моим кодом. Я много читал о Selenium, но я им не пользовался.

Один из комментариев в вашем разделе комментариев спрашивал об URL сайта, который вы просматриваете ... Если бы вам пришлось вручную просматривать страницу HTML, возможно, можно было бы определить имена Java-Методы сценариев, которые вызываются, и затем используют эти методы в Java для вызова сервера и получения содержимого самостоятельно ...

Это действительно то, что я прочитал - это то, что предполагается Selenium WebDriverсделать автоматически (выполнить Java-Script изначально в DOM) с помощью «безголового браузера». Но я просмотрел содержимое многих сайтов, найдя имена методов JavaScript, создав 2-строчную Java-программу для вызова самого сервера, а затем сам анализировал HTML или JSON, чтобы сделать с ним все, что мне нужно ...

...