Goutte: مكتبة بسيطة لبرمجة الويب بلغة PHP
Goutte هي مكتبة مخصصة لبرمجة الويب بلغة PHP، وتستخدم لاستخراج البيانات من صفحات الويب. توفر Goutte واجهة برمجة تطبيقات سهلة الاستخدام للتجول في المواقع واستخراج البيانات من استجابات HTML/XML.
التحذير
تعتبر هذه المكتبة قديمة، حيث أصبحت Goutte في الإصدار 4 مجرد وكيل بسيط لفئة HttpBrowser من مكون Symfony BrowserKit. للانتقال، يجب استبدال Goutte\Client
بـ Symfony\Component\BrowserKit\HttpBrowser
في الشيفرة الخاصة بك.
المتطلبات
تعتمد Goutte على PHP 7.1 أو أعلى.
التثبيت
لإضافة Goutte كمكتبة تعتمد عليها، يمكنك استخدام الأمر التالي في ملف composer.json:
composer require fabpot/goutte
الاستخدام
لإنشاء مثيل عميل Goutte (الذي يمتد من Symfony\Component\BrowserKit\HttpBrowser
):
use Goutte\Client;
$client = new Client();
قم بإجراء طلبات باستخدام طريقة request()
:
// الانتقال إلى موقع symfony.com
$crawler = $client->request('GET', 'https://www.symfony.com/blog/');
ترجع هذه الطريقة كائن Crawler (Symfony\Component\DomCrawler\Crawler
). لاستخدام إعدادات HTTP الخاصة بك، يمكنك إنشاء وتمرير مثيل HttpClient إلى Goutte. على سبيل المثال، لإضافة مهلة طلب مدتها 60 ثانية:
use Goutte\Client;
use Symfony\Component\HttpClient\HttpClient;
$client = new Client(HttpClient::create(['timeout' => 60]));
النقر على الروابط
// النقر على رابط "إشعارات الأمان"
$link = $crawler->selectLink('Security Advisories')->link();
$crawler = $client->click($link);
استخراج البيانات
// الحصول على أحدث منشور في هذه الفئة وعرض العناوين
$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']);
$crawler->filter('.flash-error')->each(function ($node) {
print $node->text()."\n";
});
المزيد من المعلومات
للحصول على مزيد من المعلومات حول ما يمكنك القيام به باستخدام Goutte، اقرأ الوثائق الخاصة بمكونات BrowserKit وDomCrawler وHttpClient من Symfony.
النطق
يتم نطق Goutte كـ "غوت"، أي أنها تتناغم مع كلمة "بوت" وليس "أوت".
المعلومات التقنية
Goutte هي غلاف رقيق حول مكونات Symfony التالية: BrowserKit وCssSelector وDomCrawler وHttpClient.
الترخيص
Goutte مرخص بموجب ترخيص MIT.