Как изменить версию браузера в JSOUP? - PullRequest
1 голос
/ 16 февраля 2020

Я пытаюсь разобрать данные с amd.com. В браузере Opera страница выглядит как , с именем процессора и ссылкой на страницу в третьем столбце. Но когда я использую JSOUP, я получаю эту страницу (как в IE) .
Get-метод для документа:

private Document getDocument(String url) {
        try {
            String userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 OPR/66.0.3515.72";
            return Jsoup.connect(url).userAgent(userAgent).get();
        } catch (IOException e) {
            throw new IllegalStateException(e);
        }
    }

В userAgent я следовал совету TuyenNTA .
Мне нужно получить ссылки на страницы процессора.

1 Ответ

1 голос
/ 16 февраля 2020

Возможно, причина в том, что веб-страница динамически изменяется на javascript. Jsoup не сможет отловить эти изменения. Вы можете попробовать использовать jsoup в сочетании с селеном. Вот пример (вы упомянули оперный браузер в своем вопросе, поэтому пример использует оперный драйвер):

        // set opera driver location
        System.setProperty("webdriver.opera.driver", "<PATH_TO_operadriver.exe>");
        OperaOptions options = new OperaOptions();
        options.setBinary("<PATH_TO_opera.exe>");
        WebDriver driver = new OperaDriver(options);

        try {
            driver.get("http://amd.com");
            Document doc = Jsoup.parse(driver.getPageSource());
        } finally {
            driver.close();
            driver.quit();
        }
...