You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生产环境下Google News爬虫无输出问题求助

排查Goutte爬取Google News生产环境空白问题

1. 先开启错误显示,定位根本问题

生产环境通常默认关闭错误输出,导致无法直观看到报错。在代码开头添加以下代码,强制显示所有错误信息:

error_reporting(E_ALL);
ini_set('display_errors', 1);

这一步能帮你快速确认是否存在依赖缺失、选择器失效或请求被拦截等问题。

2. 解决反爬拦截问题

Google News会通过请求头识别爬虫,Goutte默认的User-Agent极易被标记。设置模拟真实浏览器的请求头:

$client = new Client();
// 替换为当前主流浏览器的User-Agent
$client->setHeader('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
// 可额外添加其他真实请求头增强伪装
$client->setHeader('Accept-Language', 'fr-FR,fr;q=0.9');

若仍被拦截,可尝试添加请求延迟(sleep(2)模拟人类操作),或使用代理IP规避IP封禁。

3. 替换脆弱的DOM选择器

你当前使用的选择器依赖Google动态生成的类名(如zQTmif、SSPGKf),这类标识会随反爬策略、访问地区变化,导致生产环境与开发环境DOM结构不匹配。改用更稳定的选择器:

// 直接定位新闻article标签,避免嵌套过长的动态类选择器
$crawler->filter('article')->each(function ($node) {
    try {
        $title = $node->filter('h3')->text();
        $source = $node->filter('div[jsname="Cpkphb"] a')->text();
        $date = $node->filter('time')->text();
        // 修复链接拼接:Google News的href是相对路径,需补全域名并去除前缀点
        $link = 'https://news.google.com' . str_replace('.', '', $node->filter('h3 a')->attr('href'));
        $img = $node->filter('figure img')->attr('src');

        // 输出测试内容
        echo "标题:{$title}<br>";
        echo "来源:{$source}<br>";
        echo "时间:{$date}<br>";
        echo "链接:{$link}<br><br>";
    } catch (\Symfony\Component\DomCrawler\Exception\NotFoundException $e) {
        // 捕获单个元素找不到的错误,避免中断循环
        echo "条目解析失败:{$e->getMessage()}<br>";
    }
});

4. 修复URL参数错误

你的代码中unifyUrl生成了正确的请求URL,但实际请求时用了硬编码的错误URL(包含多余的$符号)。改用生成的正确URL:

$url = unifyUrl('* site:*.cd');
$crawler = $client->request('GET', $url);

5. 检查生产环境基础配置

  • 确认生产环境已执行composer install --no-dev,所有依赖(Goutte、Guzzle等)已正确安装
  • 检查PHP版本是否与开发环境一致(Goutte对PHP版本有最低要求)
  • 测试生产服务器网络连通性:通过curl https://news.google.com确认能正常访问目标站点

内容的提问来源于stack exchange,提问作者Mayulu Mayurlan Gloire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:54:28