Goutte: Простой веб-скрейпер на PHP
Goutte — это библиотека для скрейпинга и веб-поиска на PHP, которая предоставляет удобный API для обхода веб-сайтов и извлечения данных из HTML/XML ответов. Однако стоит отметить, что эта библиотека устарела. Начиная с версии 4, Goutte стал простым прокси для класса HttpBrowser из компонента Symfony BrowserKit.
Основные функции Goutte
- Простота использования: Goutte позволяет легко создавать экземпляры клиента и выполнять HTTP-запросы.
- Извлечение данных: С помощью Goutte вы можете извлекать данные из HTML-страниц, используя CSS-селекторы.
- Отправка форм: Goutte поддерживает отправку форм, что позволяет взаимодействовать с веб-приложениями.
Установка Goutte
Чтобы установить Goutte, добавьте его как зависимость в ваш файл composer.json
:
composer require fabpot/goutte
Использование Goutte
Создание экземпляра клиента
Создайте экземпляр клиента Goutte:
use Goutte\Client;
$client = new Client();
Выполнение запросов
Выполните запрос к веб-сайту:
$crawler = $client->request('GET', 'https://www.symfony.com/blog/');
Извлечение данных
Извлеките данные с помощью CSS-селекторов:
$crawler->filter('h2 > a')->each(function ($node) {
print $node->text()."\n";
});
Отправка форм
Отправьте форму на сайте:
$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']);
Примечания
- Goutte требует PHP 7.1 и выше.
- Для получения дополнительной информации ознакомьтесь с документацией компонентов BrowserKit, DomCrawler и HttpClient Symfony.
Лицензия
Goutte лицензирован под MIT лицензией.
Заключение
Хотя Goutte и устарел, он все еще может быть полезным для простых задач веб-скрейпинга. Если вы ищете более современные решения, рассмотрите возможность использования Symfony BrowserKit напрямую.
Попробуйте Goutte и откройте для себя возможности веб-скрейпинга на PHP!