我正在尝试使用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开发者工具检查正在交换的请求/响应数据。下面的屏幕截图显示了我的浏览器收到的响应数据
我注意到该网站正在设置似乎与安全性和CPFS相关的cookie,我想这些cookie会阻止我的客户成功解析网页。但我不知道如何解决这个问题。我想这是其他人以前遇到的问题。任何帮助将不胜感激。
答案 0 :(得分:1)
对于遇到类似问题的任何人,我发现的解决方案是,正如Scuzzy提供的评论者所说,将用户代理数据添加到我的guzzle配置中。