ziming / laravel-scrapingbee
ScrapingBee 的 PHP Laravel 库
2.12.2
2024-06-23 17:17 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0||^10.0||^11.0
- spatie/laravel-package-tools: ^1.13.5
Requires (Dev)
- nunomaduro/collision: ^6.3||^7.0||^8.1.1
- orchestra/testbench: ^7.7||^8.0||^9.0
- phpunit/phpunit: ^9.5.24||^10.0||^11.0
- rector/rector: ^1.0
- spatie/laravel-ray: ^1.30
- symfony/thanks: ^1.3
- vimeo/psalm: ^5.6
README
ScrapingBee 的 PHP Laravel 包 (链接)
如果您想支持我的工作,可以使用我的 推荐链接创建账户并成为 ScrapingBee 的付费客户。
另外,如果您对这些推荐链接提供的服务感兴趣,我们可以双方受益
安装
您可以通过 composer 安装此包
composer require ziming/laravel-scrapingbee
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Ziming\LaravelScrapingBee\LaravelScrapingBeeServiceProvider" --tag="laravel-scrapingbee-config"
这是发布配置文件的内容
return [ 'api_key' => env('SCRAPINGBEE_API_KEY'), 'base_url' => env('SCRAPINGBEE_BASE_URL', 'https://app.scrapingbee.com/api/v1/'), 'timeout' => env('SCRAPINGBEE_TIMEOUT', 120), ];
用法
通用的 ScrapingBee 客户端
$scrapingBeeClient = Ziming\LaravelScrapingBee\LaravelScrapingBee::make(); $response = $scrapingBeeClient->blockAds() ->when(now()->weekOfMonth === 4, function (LaravelScrapingBee $scrapingBeeClient): LaravelScrapingBee { // if it is last week of the month, spam premium proxy to use up credits! return $scrapingBeeClient->premiumProxy(); }) ->jsonResponse() ->jsScenario([ ['click' => '#button_id'], ['wait' => 1000], ['wait_for' => '#slow_div'], ['scroll_x' => 1000], ['scroll_y' => 1000], ['fill' => ['#input_1','value_1']], ['evaluate' => 'console.log(window);'], ])->get('https://www.scrapingbee.com')
查看 src/LaravelScrapingBee.php
的源代码以获取其他方法(链接见下文)。返回 $this
的方法是可以链式的。例如上面看到的 blockAds()
方法。同时,如 get()
、post()
、usageStatistics()
等方法在没有抛出异常的情况下返回 Illuminate\Http\Client\Response
对象。
如果您出于某种原因希望一次性设置所有参数,则可能希望使用 setParams() 或 addParams()
方法。请注意,这些方法只是简单地接收一个数组并按原样设置参数。因此,对于在设置参数之前执行额外操作的方法,如果您选择此路径,您现在必须自己执行这些操作。
以下是一个示例
$scrapingBeeClient = Ziming\LaravelScrapingBee\LaravelScrapingBee::make(); $response = $scrapingBeeClient->setParams([ 'js_scenario' => json_encode([ 'instructions' => [ ['click' => '#button_id'], ['wait' => 1000], ['wait_for' => '#slow_div'], ['scroll_x' => 1000], ['scroll_y' => 1000], ['fill' => ['#input_1','value_1']], ['evaluate' => 'console.log(window);'] ] ]), 'block_ads' => true, 'json_response' => true, ])->get('https://www.scrapingbee.com')
Google 搜索 ScrapingBee 客户端
$googleSearchScrapingBeeClient = Ziming\LaravelScrapingBee\LaravelScrapingBeeGoogleSearch::make(); $response = $googleSearchScrapingBeeClient ->nbResults(8) ->page(1) ->search('scrapingbee') ->get();
查看 src/LaravelScrapingBeeGoogleSearch.php
的源代码以获取其他方法(链接见下文)。
LaravelScrapingBeeGoogleSearch.php
测试
目前没有测试。但如果将来有测试,您可以运行以下命令来执行测试用例。
composer test
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
请查看我们关于如何报告安全漏洞的 安全策略。
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。