PHP HTTP客户端无法解析网页

时间:2017-07-20 08:04:54

标签: php http guzzle6

我正在尝试使用Http客户端来存储网页中的HTML。以下代码片段显示了我如何配置Http客户端,它使用php-http / guzzle6-adapter。 我从测试中得知客户端在指向其他网页时工作正常。

<?php
require_once(__DIR__.'/vendor/autoload.php');

use Http\Adapter\Guzzle6\Client as GuzzleAdapter;
use GuzzleHttp\Psr7\Request;

$config = [
    'verify' => false,
    'timeout' => 2
];
$adapter = GuzzleAdapter::createWithConfig($config);

$request = new Request('GET', 'https://workingwithchildren.wa.gov.au/');

// Returns a Psr\Http\Message\ResponseInterface
$response = $adapter->sendRequest($request);

echo $response->getBody();

?>

然而,无论我做什么,我试图解决https://workingwithchildren.wa.gov.au/的页面都会返回以下错误。

  

请求的网址已被拒绝。请咨询您的管理员。

     

您的支持ID是:9283834035315018727

我将浏览器指向网站并使用Chrome开发者工具检查正在交换的请求/响应数据。下面的屏幕截图显示了我的浏览器收到的响应数据

Screenshot

我注意到该网站正在设置似乎与安全性和CPFS相关的cookie,我想这些cookie会阻止我的客户成功解析网页。但我不知道如何解决这个问题。我想这是其他人以前遇到的问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

对于遇到类似问题的任何人,我发现的解决方案是,正如Scuzzy提供的评论者所说,将用户代理数据添加到我的guzzle配置中。