Чтобы сымитировать запрос от реального пользователя, вместе с ним нужно отправить на веб-сервер специальные заголовки — User-Agent, Accept, Accept-Encoding, Accept-Language, Cache-Control и Connection. Их вы можете увидеть, если откроете веб-инспектор своего браузера.
и тут постучался к вам cloudfrare
Так поэтому и нужен Selenium) Просто главное не баловаться, делать задержки между запросами к страницам. Чтобы не получилось так, что ваш парсер пытается отправить 1000 запросов — от этого будет плохо серверу, ресурс с которого вы парсите, и, как следствие, вам.