【问题标题】:How can i get response status code from Goutte如何从 Goutte 获取响应状态代码
【发布时间】:2020-01-10 17:46:31
【问题描述】:

我正在使用Goutte 来解析一些网站。

这是我的代码示例

$goutteClient = new Client();
$response = $goutteClient->setHeader('User-Agent', $userAgent)
->setClient($guzzleClient)
->request('GET', 'https://example.com');

$response 是Symfony\Component\DomCrawler\Crawler 的实例

那么,如何获取响应状态码来检查它是 404 错误还是其他错误?

【问题讨论】:

    标签: php web-crawler goutte


    【解决方案1】:

    $goutteClient->getResponse() 会给你最后一个请求的响应对象。

    完整代码为:

    $res = $goutteClient->getResponse();
    if ($res->getStatusCode() === 404) {}
    

    【讨论】:

      【解决方案2】:

      它帮助了我

      if ($goutteClient->getResponse()->getStatusCode() === 404){}
      

      【讨论】:

        【解决方案3】:
        $status = $goutteClient->getResponse();
        if($status == 404) {
        [...]
        }
        
        

        【讨论】:

        • 这行不通,你需要 $status = 并且 getResponse 返回一个对象,如果你用相同的运算符测试它,它永远不会匹配 404
        • 正确的方式是$res = $goutteClient->getResponse(); if ($res->getStatusCode() === 404) {}
        【解决方案4】:

        以这种方式为我工作:

        $response = $client->getInternalResponse();
        if($response->getStatusCode() === 404){
           // NOT FOUND
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-17
          • 2020-06-26
          • 1970-01-01
          • 1970-01-01
          • 2020-08-19
          • 2021-05-14
          • 2021-10-03
          • 2022-09-23
          相关资源
          最近更新 更多