Серверы не могут блокировать запросы cURL как таковые, но они могут блокировать любые запросы, которые им не нравятся.Если сервер проверяет некоторые параметры, которые не удовлетворяет ваш запрос cURL, он может решить ответить по-другому.
В подавляющем большинстве случаев это различие в поведении вызвано наличием (или отсутствием) и значениямизаголовков HTTP-запроса.Например, сервер может проверить, что заголовок User-Agent
присутствует и имеет допустимое значение (он также может проверять множество других вещей).
Чтобы узнать, как выглядит HTTP-запрос, поступающий из браузера.используйте прокси-сервер отладки HTTP, например Fiddler или инструменты разработчика вашего браузера.
Чтобы добавить собственные заголовки в запрос cURL, используйте
curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName: HeaderValue'));