1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | public IWebDriver GetWebDriver() {<!-- --> /*********************使用火狐浏览器*********************/ FirefoxOptions options = new FirefoxOptions(); FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(); FirefoxProfile profile = new FirefoxProfile(); //设置页面加载完成状态 options.PageLoadStrategy = OpenQA.Selenium.PageLoadStrategy.Eager; //设置浏览器路径 options.BrowserExecutableLocation = @"browser\firefox.exe"; //关闭每次调试时打开的CMD service.HideCommandPromptWindow = true; //禁止GPU渲染 options.AddArgument("--disable-gpu"); //忽略错误 options.AddArgument("ignore-certificate-errors"); //禁止浏览器被自动化的提示 options.AddArgument("--disable-infobars"); //找了十几天的一句代码,反爬关键:window.navigator.webdrive值=false********************* options.SetPreference("dom.webdriver.enabled", false); //禁止加载图片 //options.SetPreference("permissions.default.image", 2); //不显示浏览器界面 //options.AddArgument("--headless"); //安全模式启动 //options.AddArgument("-safe-mode"); //禁止js //options.SetPreference("javascript.enabled", false); //本地代理 //options.AddArgument("--proxy--server=127.0.0.1:8080"); //禁止加载css样式 //options.SetPreference("permissions.default.stylesheet", 2); //设置隐身模式 //options.AddArgument("--private"); //设置请求头 profile.SetPreference("general.useragent.override", "Mozilla/5.0(iPhone;CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML,like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"); options.Profile = profile; //禁用缓存 options.SetPreference("network.http.use-cache", false); options.SetPreference("browser.cache.memory.enable", false); options.SetPreference("browser.cache.disk.enable", false); options.SetPreference("browser.sessionhistory.max_total_viewers", 3); options.SetPreference("network.dns.disableIPv6", true); options.SetPreference("Content.notify.interval", 750000); options.SetPreference("content.notify.backoffcount", 3); options.SetPreference("network.http.pipelining", true); options.SetPreference("network.http.proxy.pipelining", true); options.SetPreference("network.http.pipelining.maxrequests", 32); IWebDriver driver = new FirefoxDriver(service, options); return driver; /*********************使用谷歌浏览器*********************/ //ChromeOptions options = new ChromeOptions(); //ChromeDriverService service = ChromeDriverService.CreateDefaultService(); 反爬关键:window.navigator.webdrive值=undefined //options.AddExcludedArgument("--enable-automation"); 去掉提示:Chrome正收到自动测试软件的控制 //options.AddAdditionalCapability("useAutomationExtension", false); //options.AddArgument("--disable-infobars"); 开发者模式启动 //options.AddArgument("--auto-open-devtools-for-tabs"); 禁止GPU渲染 //options.AddArgument("--disable-gpu"); 忽略错误 //options.AddArgument("ignore-certificate-errors"); 不显示浏览器界面 options.AddArgument("--headless"); 设置页面加载完成状态 //options.PageLoadStrategy = OpenQA.Selenium.PageLoadStrategy.Eager; 禁止加载css样式 options.SetPreference("permissions.default.stylesheet", 2); 禁止加载图片 options.AddArgument("blink-settings=imagesEnabled=false"); 浏览器打开路径 //options.BinaryLocation = @"Application\chrome.exe"; 关闭每次调试时打开的CMD、关闭黑窗口 //service.HideCommandPromptWindow = true; //IWebDriver driver = new ChromeDriver(service, options); //return driver; } |