Developed with love by KnpLabs Hire us for your project!
0

SonataGoutteBundle

by sonata-project

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

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
Copyright (c) 2010-2013 Thomas Rabaix

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.