[deprecated] GoutteBundle, a thin wrapper around Goutte (a simple PHP Web Scraper)
PHP
Latest commit 610a3b4 Sep 14, 2013 @rande rande Merge pull request #11 from peterkokot/patch-1
Update LICENSE
Failed to load latest commit information.
Adapter update due to last symfony changes Jan 21, 2011
DependencyInjection
CREDITS
LICENSE Update LICENSE Sep 14, 2013
Manager.php Changed so the Client class from the Goutte library is used instead o… Oct 17, 2011
README.md GeckoVersion (rv part) cause wrong 400 response on some IIS® server May 24, 2012
SonataGoutteBundle.php update the code to the last symfony changes Feb 16, 2011

README.md

What is GoutteBundle ?

GoutteBundle integrated the Goutte project from Fabien Potencier (https://github.com/fabpot/Goutte) into the Symfony2 project.

Installation

  • Add the following entry to deps then run php bin/vendors install::
[goutte]
    git=git://github.com/fabpot/Goutte.git
    version=5ecceb7c28a428fb93f283982cc4f5edfd96630b

[SonataGoutteBundle]
    git=http://github.com/sonata-project/SonataGoutteBundle.git
    target=/bundles/Sonata/GoutteBundle
  • Register the bundle in app/AppKernel.php::
<?php

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Sonata\GoutteBundle\SonataGoutteBundle(),
        // ...
    );
}
  • Register namespaces in app/autoload.php::
<?php
$loader->registerNamespaces(array(
    // ...
    'Goutte'           => __DIR__.'/../vendor/goutte/src',
    'Sonata'           => __DIR__.'/../vendor/bundles',
));

Configuration

  • edit app/autoload.php and AppKernel.php to add the appropriate lines for the Sonata namespace.
  • edit your config.yml and add these lines
sonata_goutte:
    class: Sonata\GoutteBundle\Manager
    clients:
        default:
            config:
                adapter: Zend\Http\Client\Adapter\Socket

        curl:
            config:
                maxredirects: 0
                timeout: 30
                useragent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US) Gecko/20100401 Firefox/3.6.3
                adapter: Sonata\GoutteBundle\Adapter\Curl
                verbose_log: %kernel.logs_dir%/curl.log
                verbose: true

Usage

<?php
public function fetchAction()
{
    $client = $this->get('goutte')
        ->getNamedClient('curl');

    $crawler = $client->request('GET', 'http://symfony-reloaded.org/');

    $response = $client->getResponse();

    $content = $response->getContent();

    // do stuff with the crawler and related information
}

Requirements

  • Symfony2
  • PHP 5.3.2
  • Zend
  • Goutte