2017-02-19 20 views
0

Я просматриваю сайт http://italianembassy.ir (который доступен только через ip-адреса Ирана) с помощью селенового хром-webdriver с помощью C#, но позвольте мне сказать об этом сайте.Selenium webdriver не работает как браузер при обходе защищенного веб-сайта

Это очень защищенный сайт против DDOS-атак и очень строгий порядок действий пользователя, который немедленно блокирует вас, если вы обращаетесь к нему из двух разных систем с одним и тем же IP-адресом (например: две системы, связанные с одним модемом), и вы необходимо изменить свой IP-адрес, чтобы снова получить доступ к сайту (например: перезапуск модема).

Теперь проблема с селеном здесь: Я использую простейший код для запуска и остановки драйвера, но в любое время, когда я повторно запускаю приложение, im становится заблокированным с помощью веб-сайта, в то время как я могу открыть этот сайт с помощью браузера Chrome, закрыть хром, открыть его снова и снова без блокировки.

var driver = new ChromeDriver(); 
driver.Navigate().GoToUrl("https://italianembassy.ir"); 
// do my crawling 
driver.Quit(); 

Я действительно не понимаю. Браузер Chrome может получить доступ к сайту много раз, но драйвер chrome может выполнять только один раз. При повторном запуске моего приложения я блокируюсь (необходимо перезапустить модем).

Не пропустите ли я что-нибудь об отключении драйвера?

Имеет ли selenuim некоторые возможности? Невозможно ли это добиться из-за безопасности, применяемой к сайту? (Я не уверен в безопасности сети)

Я был бы очень рад, если вы поможете мне решить эту проблему или дать логическую причину о невозможности этой операции ,

Заранее спасибо

+1

Если нормальный Chrome работает fine..Then изменения ChromeDriver профиля загрузки из умолчанию Профиль .. – Madhan

+0

Хороший совет! Это сработало для меня, еще лучше, что сам хром Спасибо миллиону Мадхану. Я обозначаю это как решенное Но все же хочу, чтобы он стоял за ним. Какое влияние оказывает профиль на поведение веб-драйвера. Я был бы рад понять это. Еще раз спасибо Madhan – Efe

ответ

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

Я отмечаю это как решается Но еще хочу знать, что за ним стоит. Какое влияние оказывает профиль на поведение веб-драйвера. Я был бы рад понять это.

Еще раз спасибо Мадхен