【发布时间】:2017-12-25 19:23:18
【问题描述】:
我正在尝试使用 Http 客户端来存储网页中的 HTML。以下代码 sn-p 显示了我如何配置 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/都会返回以下错误。
请求的 URL 被拒绝。请咨询您的管理员。
您的支持 ID 是:9283834035315018727
我将浏览器指向该网站并使用 Chrome 开发人员工具检查正在交换的请求/响应数据。下面的屏幕截图显示了我的浏览器收到的响应数据。
我注意到该站点正在设置似乎与安全性和 CPFS 相关的 cookie,我想这些 cookie 会阻止我的客户端成功解析网页。但我不知道如何解决这个问题。我想这是其他人以前遇到过的问题。任何帮助将不胜感激。
【问题讨论】:
-
将
User-Agent设置为您的 guzzle 配置的一部分? -
谢谢!添加用户代理数据解决了我的问题