Вот как я пытаюсь загрузить содержимое веб-страницы:
System.setProperty("phantomjs.binary.path", PhantomJsDowloader.getPhantomJsPath());
WebDriver driver = new PhantomJSDriver();
driver.get("https://www.google.ru/?gws_rd=ssl");
System.out.println(driver.getTitle());
System.out.println(driver.getPageSource());
driver.quit();
Оно работает. Когда я пытаюсь загрузить другой конкретный веб-сайт, он говорит, что страница пуста:
System.setProperty("phantomjs.binary.path", PhantomJsDowloader.getPhantomJsPath());
WebDriver driver = new PhantomJSDriver();
driver.get("https://www.avito.ru/");
System.out.println(driver.getTitle());
System.out.println(driver.getPageSource());
driver.quit();
Выход:
PhantomJS is launching GhostDriver...
[INFO - 2015-12-21T08:23:45.460Z] GhostDriver - Main - running on port 44702
[INFO - 2015-12-21T08:23:46.167Z] Session [276997f0-a7bc-11e5-8fb7-7daedea9cbfa] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.7 Safari/534.34","webSecurityEnabled":true}
[INFO - 2015-12-21T08:23:46.167Z] Session [276997f0-a7bc-11e5-8fb7-7daedea9cbfa] - page.customHeaders: - {}
[INFO - 2015-12-21T08:23:46.167Z] Session [276997f0-a7bc-11e5-8fb7-7daedea9cbfa] - Session.negotiatedCapabilities - {"browserName":"phantomjs","version":"1.9.7","driverName":"ghostdriver","driverVersion":"1.1.0","platform":"windows-8-32bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
[INFO - 2015-12-21T08:23:46.167Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: 276997f0-a7bc-11e5-8fb7-7daedea9cbfa
<html><head></head><body></body></html>
[INFO - 2015-12-21T08:23:46.571Z] ShutdownReqHand - _handle - About to shutdown
Почему PhantomJS не работает? Это баг или это какая-то защита? Я все еще могу открыть и прочитать этот сайт с помощью ChromeDriver, так что такая «защита» бесполезна.
Библиотеки:
<dependencies>
<dependency>
<groupId>com.github.igor-suhorukov</groupId>
<artifactId>phantomjs-runner</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>