Java 如何在JSOUP中更改浏览器版本?
我正试图解析amd.com上的数据。在Opera浏览器页面中,第三列显示cpu名称和指向该页面的链接。但是当我使用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
获取文档的方法:
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();
}