ziming/laravel-scrapingbee

ScrapingBee 的 PHP Laravel 库

2.12.2 2024-06-23 17:17 UTC

This package is auto-updated.

Last update: 2024-09-23 17:52:39 UTC


README

Latest Version on Packagist Total Downloads

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 对象。

LaravelScrapingBee.php

如果您出于某种原因希望一次性设置所有参数,则可能希望使用 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)。有关更多信息,请参阅 许可证文件