l1n6yun / crawler
swoole crawler frame
v0.0.3
2024-12-03 07:53 UTC
Requires
- jaeger/querylist: ^4.4
- mongodb/mongodb: ^1.12
Suggests
- ext-swoole: Required to use swoole engine.
This package is auto-updated.
Last update: 2025-03-03 08:26:52 UTC
README
一个基于 Swoole 协程的高效爬虫框架,旨在快速实现网络爬虫任务。
特性
- 协程支持:利用 Swoole 的协程特性,提高爬虫效率。
- 灵活配置:支持自定义线程数、起始页和结束页等参数。
- 数据库集成:支持 MongoDB 数据库存储,方便数据管理。
- 易于扩展:提供清晰的钩子函数,方便用户自定义抓取逻辑。
安装
请确保您的环境已经安装了 PHP 和 Swoole 扩展。然后,通过 Composer 安装本项目:
composer require l1n6uyn/crawler
使用
以下是如何使用本爬虫框架的基本示例:
require_once __DIR__ . '/vendor/autoload.php'; use Crawler\Crawler; // 设置线程数 $threads = 10; // 设置起始页和结束页 $startPage = 1; $endPage = 100; // MongoDB 数据库连接信息 $mongoDbUri = 'mongodb://localhost:27017/'; $mongoDbName = 'blog'; $mongoDbCollection = 'article'; // 创建 Crawler 实例 $crawler = new Crawler($mongoDbUri, $mongoDbName, $mongoDbCollection); // 抓取列表 $crawler->list($threads, function ($page) { // 在这里实现抓取列表的逻辑... // 例如,访问一个 URL 并解析页面,然后返回数据数组 return [ [ 'title' => '页面标题', // 页面标题 'link' => '页面链接', // 页面链接 '_id' => md5('页面链接'), // 使用链接的 MD5 值作为唯一标识 ], ]; }, $endPage, $startPage); // 抓取详情 $crawler->detail($threads, function ($doc) { // 在这里实现抓取详情的逻辑... // 例如,访问详情页并解析内容,然后返回数据数组 return [ 'content' => '页面内容', // 页面内容 ]; }); // 查询爬虫状态 $status = $crawler->status();
许可证
本项目采用 MIT 许可证。