我正在使用 goutte (fabpot/goutte) 开发一个网络爬虫。当我尝试连接到 https 站点时,它会抛出错误,因为该站点正在使用自签名证书。我正在尝试找到设置curl参数的方法来忽略ssl证书是自签名的事实。
按照中的说明进行操作https://github.com/FriendsOfPHP/Goutte https://github.com/FriendsOfPHP/Goutte我尝试了以下代码:
$this->client = new Client();
$this->client->getClient()->setDefaultOption('config/curl/'.CURLOPT_SSL_VERIFYPEER, false);
$this->client->getClient()->setDefaultOption('config/curl/'.CURLOPT_CERTINFO, false);
不幸的是,当执行此代码时,会引发以下错误:
可捕获的致命错误:传递给 GuzzleHttp\Client::request() 的参数 3 必须是数组类型,给定布尔值
不知道如何设置参数。预计通话情况如何?任何帮助将不胜感激。
顺便说一句,设置curl选项,看起来guzzle将键“curl”识别为配置设置,它接受一系列与curl相关的配置值。因此,您最初想要实现的目标相当于以下内容
$client = new \Goutte\Client();
$guzzleClient = new \GuzzleHttp\Client(array(
'curl' => array(
CURLOPT_TIMEOUT => 60,
),
));
$client->setClient($guzzleClient);
$crawler = $client->request('GET', $my_url);
不确定它的支持程度如何,因为它在 guzzle 文档中的任何地方都没有指出(并且这样做使它看起来像是依赖于 CURL,我认为这不是 guzzle 的意图。因此一般超时配置条目) 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)