Java 如何在JSOUP中更改浏览器版本?

Java 如何在JSOUP中更改浏览器版本?,java,parsing,jsoup,Java,Parsing,Jsoup,我正试图解析amd.com上的数据。在Opera浏览器页面中,第三列显示cpu名称和指向该页面的链接。但是当我使用JSOUP时,它会让我感到很困惑 获取文档的方法: private Document getDocument(String url) { try { String userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Geck

我正试图解析amd.com上的数据。在Opera浏览器页面中,第三列显示cpu名称和指向该页面的链接。但是当我使用JSOUP时,它会让我感到很困惑
获取文档的方法:

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中,我遵循了

我需要获取指向CPU页面的链接。

原因可能是,该网页是由javascript动态更改的。Jsoup将无法捕获这些更改。您可以尝试将jsoup与selenium结合使用。下面是一个示例(您在问题中提到了opera浏览器,因此示例使用opera驱动程序):

//设置opera驱动程序位置
System.setProperty(“webdriver.opera.driver”和“”);
OPERAOOPTIONS options=新OPERAOOPTIONS();
期权。退步(“”);
WebDriver=新操作驱动程序(选项);
试一试{
驱动程序。获取(“http://amd.com");
Document doc=Jsoup.parse(driver.getPageSource());
}最后{
driver.close();
driver.quit();
}
        // 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();
        }