【问题标题】:How to change browser version in JSOUP?如何在 JSOUP 中更改浏览器版本?
【发布时间】:2020-02-16 20:50:04
【问题描述】:

我正在尝试解析来自 amd.com 的数据。在 Opera 浏览器中,页面看起来是 like that,在第三列中带有 cpu 的名称和指向页面的链接。但是当我使用 JSOUP 时,它得到了我this page (like in IE)
文档的获取方法:

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's advise
我需要获取 cpus 页面的链接。

【问题讨论】:

    标签: java parsing jsoup


    【解决方案1】:

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

            // 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();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      相关资源
      最近更新 更多