使用Behat / Mink时加载GoutteClient时出错

时间:2012-10-20 19:37:49

标签: web-scraping scraper mink goutte

我正在尝试使用Behat / Mink来加载网站。

我已经使用Composer进行安装,这是我的composer.json:

{
    "require": {
        "behat/mink": "*",

        "behat/mink-goutte-driver": "*",
        "behat/mink-selenium-driver": "*",
        "behat/mink-selenium2-driver": "*",
        "behat/mink-sahi-driver": "*",
        "behat/mink-zombie-driver": "*"
    }
}

为了进行安装,我运行了以下命令:

$ curl http://getcomposer.org/installer | php
$ php composer.phar install

所有内容都安装顺利,没有任何错误消息。

这是我的index.php文件:

require 'vendor/autoload.php';

use Behat\Mink\Mink,
    Behat\Mink\Session,
    Behat\Mink\Driver\GoutteDriver,
    Behat\Mink\Driver\Goutte\Client as GoutteClient,
    Behat\Mink\Driver\SahiDriver;

$startUrl = 'www.example.com';

// init Mink and register sessions
$mink = new Mink(array(
    'goutte1'    => new Session(new GoutteDriver(GoutteClient($startUrl))),
    'goutte2'    => new Session(new GoutteDriver(GoutteClient($startUrl))),
    'javascript' => new Session(new SahiDriver('firefox')),
    'custom'     => new Session(new MyCustomDriver($startUrl))
));

我尝试使用此命令运行它:

$ php index.php

但是我收到以下错误消息:

  

PHP致命错误:调用未定义的函数GoutteClient()   第14行的index.php

这是指这一行:

'goutte1'    => new Session(new GoutteDriver(GoutteClient($startUrl))),

使用以下文档完成安装:

http://mink.behat.org/

示例是在文档之后完成的:

https://github.com/Behat/Mink

关于我可能做错什么的任何建议?

1 个答案:

答案 0 :(得分:1)

您在 GoutClient 之前忘记了“new”关键字。你应该写:

 $mink = new Mink(array(
    'goutte1'    => new Session(new GoutteDriver(new GoutteClient($startUrl))),
    'goutte2'    => new Session(new GoutteDriver(new GoutteClient($startUrl))),
    'javascript' => new Session(new SahiDriver('firefox')),
    'custom'     => new Session(new MyCustomDriver($startUrl))
));

BTW:您根本不必初始化 GouteClient GouteDriver 应该可以正常工作。

以下是Mink独立的一个工作示例:https://github.com/jakzal/web-scraper-demo