Не удалось подключиться к порту news.google.com 80

Ниже приведен код для получения канала новостей Google. Это работает хорошо в течение некоторого времени. Если мы попытаемся вызвать эту функцию более чем за 2 или 3 раза, это покажет ошибку.

$url="http://news.google.com/news?q=Stella+Artois&hl=en&um=1&ie=UTF-8&output=rss";
$ch = curl_init();

curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

$data = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($data, 0, $header_size);
$body = substr($data, $header_size);
if(curl_error($ch)){
echo 'error:' . curl_error($ch);
}
curl_close($ch);

ошибка: не удалось подключиться к порту news.google.com 80: соединение отклонено

Я знаю, что причина была, Google заблокирует доступ после нескольких запросов. СИ что-нибудь может сделать? Я использую сервер Linux.

0

Решение

Да, Google заблокирует это после повторных попыток и может даже вообще ответить на запросы скручивания. Вы должны использовать API — https://newsapi.org/google-news-api

0

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

Перепробовав много вариантов, я нашел альтернативный API, который сейчас работает хорошо rss2json.com

Вызов API: https://api.rss2json.com/v1/api.json?rss_url=http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3Dyahoo%26hl%3Den%26um%3D1%26ie%3DUTF-8% 26output% 3Drss

0

По вопросам рекламы [email protected]