pdustdar / goutte
用于 Goutte 的 Laravel Facade,Goutte 是一个简单的 PHP 网络爬虫
Requires
- php: ^7.3|^8.0
- fabpot/goutte: ^4.0
- illuminate/support: ^8
Requires (Dev)
- orchestra/testbench: ^6.0
This package is auto-updated.
Last update: 2024-09-23 22:11:42 UTC
README
此存储库实现了一个简单的 ServiceProvider,它通过 Facade 在 Laravel 中轻松访问 Goutte 客户端的单例实例。有关 PHP 网络爬虫及其接口的更多信息,请参阅 @FriendsOfPHP/Goutte。
使用 Composer 安装
在终端应用程序中,使用 cd
命令切换到您的 Laravel 项目的根目录,并使用 Composer 将项目作为依赖项添加。
$ cd ~/Sites/laravel-example-project $ composer require weidner/goutte
这将向您的 composer.json
中添加以下行,并将项目及其依赖项下载到项目的 ./vendor
目录。
// ./composer.json { "name": "weidner/laravel-goutte-test", "description": "A dummy project used to test the Laravel Goutte Facade.", // ... "require": { "php": ">=5.5.9", "laravel/framework": "^5.5", "weidner/goutte": "^1", // ... }, //... }
用法
为了使用静态接口,我们首先需要自定义应用程序配置,告诉系统在哪里可以找到新的服务。在您的首选编辑器中打开 config/app.php
文件,并添加以下行([1]
,[2]
):
// config/app.php return [ // ... 'providers' => [ // ... /* * Package Service Providers... */ Weidner\Goutte\GoutteServiceProvider::class, // [1] This will register the Package in the laravel echo system /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, ], // ... 'aliases' => [ 'App' => Illuminate\Support\Facades\App::class, 'Artisan' => Illuminate\Support\Facades\Artisan::class, // ... 'Goutte' => Weidner\Goutte\GoutteFacade::class, // [2] It will register as an alias for the Goutte facade 'Hash' => Illuminate\Support\Facades\Hash::class, // ... ], ];
现在,您应该在应用程序中能够使用 Facade。一旦您使用了注册的别名,Laravel 就会自动加载相应的类。
// routes/web.php Route::get('/', function() { $crawler = Goutte::request('GET', 'https://duckduckgo.com/html/?q=Laravel'); $crawler->filter('.result__title .result__a')->each(function ($node) { dump($node->text()); }); return view('welcome'); });
提示:如果您检索到 "未找到类 'Goutte'" 异常,请尝试通过在项目根目录中运行 composer dump-autoload
来更新自动加载器。
提示:您还可以使用此包与 Lumen 一起使用。在 bootstrap/app.php
中注册 GoutteServiceProvider
,并在 AppServiceProvider
中提供缺少的配置目录路径(参见 #34)。
配置
您可以根据需要自定义默认请求选项以应用于客户端的每个请求。首先将默认配置复制到您的应用程序目录。
php artisan vendor:publish --provider="Weidner\Goutte\GoutteServiceProvider"
在 config/goutte.php
中打开创建的文件,并按需自定义配置选项。
<?php return [ 'client' => [ 'max_redirects' => 0, ], ];
有关可用选项的完整列表,请参阅 Symfony Http Client 文档。