我将硒与PhantomJs配合使用来抓取URL。我如下初始化了驱动程序
final DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setCapability( PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "PhantomJsPath"); caps.setCapability("page.settings.loadImages", false); caps.setCapability("trustAllSSLCertificates", true); RemoteWebDriver driver = new PhantomJSDriver(caps); driver.setLogLevel(Level.OFF); driver.get("https://.......")
从驱动程序获得的页面源为空
我有什么想念的吗?
最近,POODLE漏洞迫使网站删除SSLv3支持。由于PhantomJS<v1.9.8默认情况下使用SSLv3,因此无法加载页面。要解决此问题,您需要使用--ssl-protocol=tlsv1或运行PhantomJS--ssl-protocol=any。请参阅此答案以获取纯PhantomJS。
--ssl-protocol=tlsv1
--ssl-protocol=any
caps = DesiredCapabilities.phantomjs(); // or new DesiredCapabilities(); caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--ssl-protocol=tlsv1"}); // other capabilities driver = new PhantomJSDriver(caps);
如果这样不能解决问题,您还可以添加
"--web-security=false", "--ignore-ssl-errors=true"