0

Дополнение: Такое происходит только на этапе проверки браузера (Checking your browser before accessing....)

Хочу спарсить сайт, но на нём стоит защита CloudFlare, из-за него происходит бесконечная перезагрузка страницы. Хотя если заходить вручную в браузер и вбивать сайт, то всё работает. Пробовал Selenium.Chrome и Selenium.Chrome - ничего не работает. Попробовал Selenium.IE пустило на сайт, но мой код почему-то с ним не работает. В чём может быть проблема?

Код который использую:

        IWebDriver driver = new ChromeDriver();
        driver.Url = ("https://рандомный-сайт-с-защитой-сloudfire.рф/");
mounten1
  • 127
  • 10
  • СloudFlare - не защита, а лишь ограничение, которое обходится в два клика. Поэтому у меня к вам вопрос, который я вроде задавал: зачем вам селениум? – EvgeniyZ Oct 08 '20 at 15:52
  • А вроде не задавали. А так автоматизировать работу с сайтом. – mounten1 Oct 08 '20 at 15:57
  • А вроде задавал, ну да ладно. Чем вам простые POST/GET запросы не угодили? Селениум не для этих целей создан, его задача - тестирование сайта, а для автоматизации, во многих случаях, он хм, как съездить на танке в магазин через дорогу за хлебом, попросту избыточен. – EvgeniyZ Oct 08 '20 at 15:58
  • Ну вот мне хочется съездить на танке в магазин, смотря на дороги))) А так работа с Selenium кажется проще. Т.к на сайте нужна авторизация – mounten1 Oct 08 '20 at 16:00
  • То, что вы видите, это UI, который предназначен для нас с вами, людей, чтоб нам было интуитивно удобно и понятно. Но каждая кнопочка, каждое действие, это отправка POST/GET запроса на сервер. К примеру, вот я пишу вам комментарий, это POST запрос на определенный адрес с телом, которое содержит простой string. И вот давайте подумаем, вы пишете интерфейс, для интерфейса, чтобы автоматизировать работу с сайтом, не кажется тут что-то лишнее?) А по поводу "легче" - ну, не сказал бы. – EvgeniyZ Oct 08 '20 at 16:03
  • Я потом хочу скрыть интерфейс. Как всё сделаю. – mounten1 Oct 08 '20 at 16:03
  • Это не отменяет того факта, что вы делаете программу, которая запускает браузер, который автоматизирует действия пользователя в UI (кликает по кнопочкам за вас). Зачем вам этот лишний слой? Делайте сразу запрос на сайте, да и радуйтесь жизнью. – EvgeniyZ Oct 08 '20 at 16:10
  • POST/GET запросы надо правильно формировать. Пробовал отправить любой запрос на сайт программой Postman с этой защитой, но мне пришёл ответ странички защиты, о том что браузер проверяется. – mounten1 Oct 08 '20 at 16:12
  • Дайте мне любой сайт с этой защитой. – EvgeniyZ Oct 08 '20 at 16:13
  • Даже не знаю какой. А если я отправлю сайт который пытаюсь спарсить, то мне тапком по голове прилетит. – mounten1 Oct 08 '20 at 16:15
  • Неважно, что вы скроете интерфейс. Почитайте как в статьях пишут про то, как много ваши танки на базе селениум жрут ресурсов сервера и приходится фермы сооружать. Впрочем, если вас это устраивает... – A K Oct 08 '20 at 16:22
  • На то и есть танки, чтобы быть танками. – mounten1 Oct 08 '20 at 16:23
  • Открыл свой любимый сайт политических новостей в хром.драйвер84, попробовал открыть пару рандомных сайтов, перечисленных в википедии, как "такие крупные сайты как" - всё работает. Проблема с конкретным сайтом и похоже, не зависит от Cloudfire. – A K Oct 08 '20 at 16:45
  • Использовую драйвер к версии 86 – mounten1 Oct 08 '20 at 16:48
  • А CloudFlare не будет блокировать? – mounten1 Oct 08 '20 at 18:41
  • Я не как таблетку от всех болезней скинул, а как "вот еще такое есть". Вы можете проверить. Если даже и будет блокировать, блокировку скорее всего можно обойти, правильно построив запросы. Поисковые боты же как-то обходят. Вот кстати доказательство того, если проблема есть, скорее ввсего она уже решена. Код там правда старый, но суть та же, и это легко прикручивается к HttpClient. – aepot Oct 08 '20 at 18:45
  • @aepot Есть уже давно готовые решения, например CloudflareSolverRe или более старый CloudFlareUtilities. А так, я сам писал обход для CF, довольно просто, да и кода можно меньше написать (правда это было года 4 назад), но, автор хочет селениум)) – EvgeniyZ Oct 08 '20 at 19:04
  • @EvgeniyZ AngleSharp вроде еще скрипты умеет запускать, но я не пробовал. А автор хочет просто результат, который осязаем, чтобы как можно меньше трудиться. Производительность, потребление памяти, и оптимальность решения здесь никого не интересует. И я даже понимаю это, поэтому показал пару осязаемых вариантов, дело за автором. – aepot Oct 08 '20 at 19:22

0 Answers0