
phantomjs
是无头浏览器的代表,可以截全屏的图,对于标记元素来说是很简单的;不过最新的 Selenium
版本表示不再支持;所以只能使用其他的代理品; 正好 chrome
,Firefox
等都推出无头模式,这里就使用 ChromeDriver
作为演示
ChromeDriver
通过设置 setHeadless(true)
既可开启无头模式
设置 ChromeDirver
必要的参数
private static ChromeOptions initWebOption(String proxy) {
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setHeadless(true);
chromeOptions.addArguments("--silent");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--ignore-certificate-errors");
chromeOptions.addArguments("--allow-running-insecure-content");
chromeOptions.addArguments("--incognito");
chromeOptions.addArguments("--disable-images");
chromeOptions.addArguments("--start-maximized");
chromeOptions.addArguments("--disable-plugins");
chromeOptions.addArguments("--disable-infobars");
chromeOptions.addArguments("--lang=zh_CN.UTF-8");
chromeOptions.addArguments("--disable-javascript");
chromeOptions.addArguments("--window-size=1928,1080");
String userAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.3239.132 Safari/537.36";
chromeOptions.addArguments("--user-agent=" + userAgent);
log.info("[初始驱动参数] 正在设置驱动用户代理: {}", userAgent);
String pageLoadStrategy = "eager";
chromeOptions.setCapability("pageLoadStrategy", pageLoadStrategy);
log.info("[初始驱动参数] 正在设置驱动加载策略: {}", pageLoadStrategy);
Map<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("credentials_enable_service", false);
chromePrefs.put("profile.password_manager_enabled", false);
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("profile.managed_default_content_settings.images", 2);
chromeOptions.setExperimentalOption("prefs", chromePrefs);
chromeOptions.setExperimentalOption("useAutomationExtension", false);
chromeOptions