Я делаю проект в Java. В этом проекте мне нужно работать с DOM. Для этого я сначала загружаю динамическую страницу любого заданного URL, используя Selenium. Затем я разбираю их с помощью Jsoup.Селен занимает много времени, чтобы получить динамическую страницу данного URL.
Я хочу, чтобы получить динамический источник страницы код данного URL
Код снимка:
public static void main(String[] args) throws IOException {
// Selenium
WebDriver driver = new FirefoxDriver();
driver.get("ANY URL HERE");
String html_content = driver.getPageSource();
driver.close();
// Jsoup makes DOM here by parsing HTML content
Document doc = Jsoup.parse(html_content);
// OPERATIONS USING DOM TREE
}
Но проблема, Селен занимает около 95% всего времени обработки, что нежелательно.
Selenium сначала открывает Firefox, затем загружает данную страницу, затем получает динамический исходный код страницы.
Можете ли вы рассказать, как я могу сократить время, затраченное Selenium, заменив этот инструмент другим эффективным инструментом. Любые другие рекомендации также приветствуются.
Редактировать НЕТ. 1
На этом link приведен код.
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("general.useragent.override", "some UA string");
WebDriver driver = new FirefoxDriver(profile);
Но что здесь вторая строка, я не понял. Поскольку документация также очень бедна селеном.
Редактировать No. 2
System.out.println ("Получение% s ..." + url1); System.out.println ("Fetching% s ..." + url2);
WebDriver driver = new FirefoxDriver(createFirefoxProfile());
driver.get("url1");
String hml1 = driver.getPageSource();
driver.get("url2");
String hml2 = driver.getPageSource();
driver.close();
Document doc1 = Jsoup.parse(hml1);
Document doc2 = Jsoup.parse(hml2);
Попробуйте создать профиль firefox и использовать его с драйвером. – KDM
@ KDM Можете ли вы это уточнить, поскольку я наивна в этой области. Пожалуйста, объясните это. – devsda
Когда вы создаете webdriver с помощью 'new FirefoxDriver()' - selenium создает новый профиль для firefox и создает его. Это само по себе дорогостоящая операция. Вы можете отправить объект FirefoxProfile в конструктор, что позволяет избежать создания нового профиля каждый раз. Я попытаюсь собрать код. – KDM