Goutte: Um Simples Web Scraper em PHP
Goutte é uma biblioteca de scraping e crawling para PHP que permite extrair dados de sites de maneira eficiente. Com uma API amigável, Goutte facilita a navegação em websites e a extração de informações a partir de respostas HTML/XML.
Aviso Importante
Atenção: Esta biblioteca está obsoleta. A partir da versão 4, Goutte se tornou um simples proxy para a classe HttpBrowser do componente BrowserKit do Symfony. Para migrar, substitua Goutte\Client
por Symfony\Component\BrowserKit\HttpBrowser
no seu código.
Requisitos
Goutte requer PHP 7.1 ou superior.
Instalação
Para instalar o Goutte, adicione fabpot/goutte
como uma dependência no seu arquivo composer.json
:
composer require fabpot/goutte
Uso
Criando uma Instância do Cliente Goutte
Para começar, crie uma instância do cliente Goutte:
use Goutte\Client;
$client = new Client();
Fazendo Requisições
Você pode fazer requisições usando o método request()
:
// Acesse o site symfony.com
$crawler = $client->request('GET', 'https://www.symfony.com/blog/');
O método retorna um objeto Crawler
que permite manipular o DOM da página.
Extraindo Dados
Para extrair dados, você pode usar o método filter()
:
// Obtenha os títulos dos posts mais recentes
$crawler->filter('h2 > a')->each(function ($node) {
print $node->text() . "\n";
});
Enviando Formulários
Você também pode enviar formulários facilmente:
$crawler = $client->request('GET', 'https://github.com/');
$crawler = $client->click($crawler->selectLink('Sign in')->link());
$form = $crawler->selectButton('Sign in')->form();
$crawler = $client->submit($form, ['login' => 'fabpot', 'password' => 'xxxxxx']);
$crawler->filter('.flash-error')->each(function ($node) {
print $node->text() . "\n";
});
Mais Informações
Para mais detalhes sobre o que você pode fazer com o Goutte, consulte a documentação dos componentes BrowserKit, DomCrawler e HttpClient do Symfony.
Pronúncia
Goutte é pronunciado como "goot", rimando com "boot" e não com "out".
Informações Técnicas
Goutte é uma camada fina sobre os seguintes componentes do Symfony: BrowserKit, CssSelector, DomCrawler e HttpClient.
Licença
Goutte é licenciado sob a licença MIT.
Conclusão
Goutte é uma ferramenta poderosa para desenvolvedores PHP que precisam de uma solução simples para scraping de dados. Embora esteja obsoleta, ainda é uma referência para entender como implementar scraping em PHP. Para projetos novos, considere usar o HttpBrowser diretamente.
Ação Recomendada
Experimente o Goutte em seus projetos de scraping e veja como ele pode facilitar a extração de dados da web!