我正在使用c#抓取使用selenium chrome webdriver的网站http://italianembassy.ir(只能通过伊朗的IP地址访问),但是请允许我说一下这个网站。
这是一个非常安全的网站,可以抵御DDOS攻击并且对用户活动非常严格,如果您使用相同的IP地址从两个不同的系统访问它,会立即阻止您(例如:两个系统连接一个调制解调器),您需要更改您的IP地址以便再次访问该站点(例如:重新启动调制解调器)。
现在,硒的问题在这里: 我使用最简单的代码启动和停止驱动程序,但任何时候我重新运行我的应用程序,我被网站封锁,而我可以用Chrome浏览器打开这个网站,关闭chrome,一次又一次地打开它而不会被阻止。< / p>
var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://italianembassy.ir");
// do my crawling
driver.Quit();
我实际上并不了解它。 Chrome浏览器可以多次访问该站点,但Chrome驱动程序只能执行一次。重新运行我的应用程序时,我被阻止(需要重新启动调制解调器)。
我是否想念安全地关闭司机?
selenuim缺乏一些能力吗? 由于应用于网站的安全性,是否无法实现这一目标?(我不擅长网络安全)
如果你帮助我解决这个问题,或者给出一个关于这个操作不可靠的合理理由,我会很高兴。
提前致谢
答案 0 :(得分:0)
很好的提示!
它对我有用,甚至更好的是铬本身
var driverOptions = new ChromeOptions();
driverOptions.AddArguments($"user-data-dir=C:/Users/{Environment.UserName}/AppData/Local/Google/Chrome/User Data/Default");
var driver = new ChromeDriver(driverOptions);
我将此标记为已解决 但仍然想知道背后的原因。 配置文件对Web驱动程序的行为有何影响。 我很高兴能够理解它。
再次感谢Madhan