nelexa / roach-php-bundle
Roach PHP/core 的 Symfony 扩展包
Requires
- php: >= 8.0
- roach-php/core: ~1.1.0
- symfony/config: ^6.0
- symfony/console: ^6.0
- symfony/dependency-injection: ^6.0
- symfony/http-kernel: ^6.0
- symfony/serializer: ^6.0
Requires (Dev)
- psalm/plugin-phpunit: ^0.16.1
- psalm/plugin-symfony: ^3.1
- roave/security-advisories: dev-latest
- symfony/framework-bundle: ^6.0
- symfony/maker-bundle: ^1.37
- symfony/phpunit-bridge: ^6.0
- symfony/var-dumper: ^6.0
- vimeo/psalm: ^4.21
Suggests
- spatie/browsershot: Required to execute Javascript in spiders
README
roach-php-bundle
Symfony 扩展包,用于 Roach PHP。
Roach 是一个完整的 PHP 网络爬虫工具包。它受到流行的 Scrapy Python 包的强烈启发。
Symfony 扩展包主要提供了 Roach 使用所需的容器绑定,以及通过配置文件提供某些配置选项。要了解如何实际开始使用 Roach,请参阅其余的文档。
安装 Symfony 扩展包
将 nelexa/roach-php-bundle
添加到您的 composer.json 文件中
composer require nelexa/roach-php-bundle
版本和依赖关系
注册扩展包
将扩展包注册到 config/bundles.php(Flex 自动完成)
return [ //... \Nelexa\RoachPhpBundle\RoachPhpBundle::class => ['all' => true], ];
可用命令
Roach 的 Symfony 扩展包注册了一些控制台命令,以使开发体验尽可能愉快。
运行蜘蛛
php bin/console roach:run
之后,您将获得所有可用的蜘蛛列表。
Choose a spider class:
[0] App\Spider\GoogleSpider
[1] App\Spider\FacebookSpider
[2] App\Spider\TwitterSpider
只需选择所需的蜘蛛(▼ 或 ▲)或输入其编号并按 Enter 键。
您可以将蜘蛛类名或其别名作为第一个参数传递来运行。例如,如果您有一个类 App\Spider\GoogleSpider
,那么您可以传递以下别名:GoogleSpider
、google_spider
或 google
。
php bin/console roach:run google
有时覆盖并发请求数量和预请求延迟很有用。为此,您可以传递 --concurrency
和 --delay
选项。
php bin/console roach:php google --concurrency 8 --delay 2
这些选项覆盖了蜘蛛的公共属性 $concurrency 和 $requestDelay。
添加 --output
(-o
)选项,您可以将收集到的数据保存到 JSON 文件中。
php bin/console roach:php google --output 'path/to/data.json'
启动 REPL
Roach 随带一个交互式 shell(通常称为 Read-Evaluate-Print-Loop,简称 Repl),这使得我们的蜘蛛原型设计变得容易。我们可以使用提供的 roach:shell
命令来启动新的 Repl 会话。
php bin/console roach:shell "https://roach-php.dev/docs/introduction"
生成器类
首先安装 Symfony MakerBundle
。
composer require --dev symfony/maker-bundle
创建一个新的 roach 蜘蛛类
php bin/console make:roach:spider
创建一个新的 roach 扩展类
php bin/console make:roach:extension
创建一个新的 roach 项处理器类
php bin/console make:roach:item:processor
创建一个新的 roach 下载器请求中间件类
php bin/console make:roach:middleware:downloader:request
创建一个新的 roach 下载器响应中间件类
php bin/console make:roach:middleware:downloader:response
创建一个新的 roach 蜘蛛项中间件类
php bin/console make:roach:middleware:spider:item
创建一个新的 roach 蜘蛛请求中间件类
php bin/console make:roach:middleware:spider:request
创建一个新的 roach 蜘蛛响应中间件类
php bin/console make:roach:middleware:spider:response
屏幕截图
鸣谢
变更日志
更改记录在发布页面上。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅LICENSE。