0

我有以下代码用于从谷歌新闻中获取提要。它工作了几次。如果我们尝试在短时间内调用此函数超过 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:连接被拒绝

我知道原因是,谷歌会在几次请求后阻止访问。SI有什么可以做的吗?我正在使用linux服务器。

4

2 回答 2

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%26输出%3Drss

于 2017-10-26T07:23:52.997 回答
0

是的,谷歌会在反复尝试后阻止它,甚至可能完全响应 curl 请求。您应该使用 API - https://newsapi.org/google-news-api

于 2017-10-26T06:35:35.163 回答