Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
[deprecated] GoutteBundle, a thin wrapper around Goutte (a simple PHP Web Scraper)

PHP
branch: master
Failed to load latest commit information.
Adapter
DependencyInjection Fixed namespace of extension
CREDITS initial commit
LICENSE Update LICENSE
Manager.php Changed so the Client class from the Goutte library is used instead o…
README.md GeckoVersion (rv part) cause wrong 400 response on some IIS® server
SonataGoutteBundle.php update the code to the last symfony changes

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
Something went wrong with that request. Please try again.