webdriver 火狐firefox 谷歌chrome浏览器启动参数设置 反爬代码

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;
        }