PHP скручивание веб-сканирования внезапно завершается ошибкой

Я могу успешно сканировать веб-сайт газеты, но сегодня могу.

Но я могу получить доступ к Интернету с помощью Firefox. Это просто случается в завитке. Это означает, что он разрешает доступ к моему IP и не запрещен.

Вот ошибка, показанная в Интернете

Пожалуйста, включите куки.

Ошибка 1010 ID луча: 1a17d04d7c4f8888

Доступ закрыт

Что случилось?

Владелец этого сайта (www1.hkej.com) заблокировал ваш доступ на основе
на подписи вашего браузера (1a17d04d7c4f8888-ua45).

CloudFlare Ray ID: 1a17d04d7c4f8888 • Ваш IP: 2xx.1x.1xx.2xx •
Спектакль & безопасность от CloudFlare

Вот мой код, который работает раньше:

$cookieMain = "cookieHKEJ.txt";  // need to use 2 different cookies since it will overwrite the old one when curl store cookie. cookie file is store under apache folder
$cookieMobile = "cookieMobile.txt";  // need to use 2 different cookies since it will overwrite the old one when curl store cookie. cookie file is store under apache folder
$agent = "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0";

// submit a login
function cLogin($url, $post, $agent, $cookiefile, $referer) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 100);          // follow the location if the web page refer to the other page automatically
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     // Get returned value as string (don’t put to screen)
curl_setopt($ch, CURLOPT_USERAGENT, $agent);        // Spoof the user-agent to be the browser that the user is on (and accessing the php script)
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);   // Use cookie.txt for STORING cookies
curl_setopt($ch, CURLOPT_POST, true);                           // Tell curl that we are posting data
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);            // Post the data in the array above
curl_setopt($ch, CURLOPT_REFERER, $referer);

$output = curl_exec($ch);       // execute
curl_close($ch);

return $output;
}

$input = cDisplay("http://www1.hkej.com/dailynews/toc", $agent, $cookieMain);
echo $input;

Как я могу использовать curl, чтобы успешно представить браузер? Я пропустил некоторые параметры?

-4

Решение

Как я сказал в посте, я могу использовать Firefox для доступа в Интернет, и мой IP не заблокирован.
Наконец, я добился успеха после того, как изменил код с

$agent = "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0";

в

$agent = $_SERVER['HTTP_USER_AGENT'];

На самом деле, я не знаю, почему происходит сбой, когда «User-Agent:» существует со вчерашнего дня, но раньше все было в порядке.

В любом случае, спасибо.

2

Другие решения

Пользователи использовали функции безопасности Cloudflares, чтобы запретить вам сканирование их веб-сайта, более чем вероятно, как вредоносный бот. Они будут делать это на основе вашего агента пользователя и IP-адреса.

Попробуйте изменить свой IP-адрес (если домашний пользователь, попробуйте перезагрузить маршрутизатор. Иногда он получает другой IP-адрес). Попробуйте использовать прокси и попробуйте отправлять разные заголовки с помощью Curl.

Что еще более важно, они не хотят, чтобы люди сканировали их сайт и влияли на их трафик и т. Д. Вы должны действительно спросить разрешение на это.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector