【问题标题】:Goutte/Guzzle Set Configuration OptionGoutte/Guzzle 设置配置选项
【发布时间】:2015-10-30 19:27:14
【问题描述】:

我正在抓取一个返回重定向的网页,所以我想在我的crawler 中添加一个配置选项,它可以让我将allow_redirects 设置为false。查看有关重定向的 guzzle.readthedocs.org 网页,它说

$response = $client->get('http://github.com', ['allow_redirects' => false]);
echo $response->getStatusCode();
// 301 

由于我在 Symfony2 中使用 Goutte,因此这些命令有些不同。例如:

$client->getClient()->setDefaultOption('config/curl/'.CURLOPT_SSL_VERIFYHOST, FALSE); 

谁能帮我发现如何将 guzzle allow_redirects 添加到配置中?我觉得这将帮助我获得我想要的页面内容,而不是一个充满重定向代码的crawler

谢谢!

【问题讨论】:

    标签: symfony curl web-scraping guzzle goutte


    【解决方案1】:

    您的问题是,如何将['allow_redirects' => false]“翻译”成 Goutte 语法?

    好吧,下面是在 Goutte 中设置 cURL 选项的方法:https://github.com/FriendsOfPHP/Goutte(搜索“微调 cURL 选项:”)

    http://php.net/manual/en/function.curl-setopt.php 为您提供您正在寻找的选项的名称:CURLOPT_FOLLOWLOCATION

    所以把它们放在一起:

    $client->getClient()->setDefaultOption('config/curl/'.CURLOPT_FOLLOWLOCATION, false;
    

    如果这不是您要求的,请编辑您的问题并澄清。

    【讨论】:

    • 当我尝试这个时,我得到以下错误“可捕获的致命错误:传递给 GuzzleHttp\Client::request() 的参数 3 必须是数组类型,给定的布尔值”。我使用的代码是: $this->client->getClient()->setDefaultOption('config/curl/'.CURLOPT_SSL_VERIFYPEER, false);
    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 2016-06-18
    • 2015-10-15
    • 1970-01-01
    • 2020-12-27
    • 2015-09-08
    • 2014-03-25
    • 2011-05-28
    相关资源
    最近更新 更多