nggiahao / crawler
0.1.0
2020-09-13 16:52 UTC
Requires
- php: ^7.3
- ext-dom: *
- ext-pdo: *
- amphp/parallel: ^1.4
- guzzlehttp/guzzle: ^6.3
- guzzlehttp/psr7: ^1.4
- laravel/framework: ^7.0
- myclabs/php-enum: ^1.7
- spatie/browsershot: ^3.37
- spatie/robots-txt: ^1.0
- symfony/css-selector: ^5.1
- symfony/dom-crawler: ^5.1
- vuh/cli-echo: ^0.2.1
Requires (Dev)
- mockery/mockery: ^1.3.1
- orchestra/testbench: ~5
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-17 18:11:31 UTC
README
本软件包的职责是从其他网站收集数据,使用Guzzle、Phantomjs或Puppeteer。
它使用Amphp来同时运行多个进程。
安装
您可以通过composer安装此软件包。
composer require nggiahao/crawler
php artisan vendor:publish --provider="Nggiahao\Crawler\CrawlerServiceProvider" --tag="config" php artisan vendor:publish --provider="Nggiahao\Crawler\CrawlerServiceProvider" --tag="migrations" php artisan migrate
如果您使用Phantomjs或Puppeteer,请安装它们。
用法
步骤1:创建网站
use Nggiahao\Crawler\SitesConfig\SiteAbstract; class W123job extends SiteAbstract { public function rootUrl(): string { return 'https://123job.vn'; } public function startUrls(): array { return [ "https://123job.vn", ]; } public function shouldCrawl( $url ) { return preg_match( "/^https:\/\/123job\.vn\/viec-lam\//", $url) || preg_match( "/^https:\/\/123job\.vn\/company\//", $url); } public function shouldGetData( $url ) { return preg_match( "/\/company\//", $url); } public function getInfoFromCrawler(Crawler $dom_crawler) { return parent::getInfoFromCrawler($dom_crawler); } }
startUrls()返回将在首次运行中使用的URL数组shouldCrawl()定义哪个URL需要爬取shouldGetData()定义哪个URL需要获取数据getInfoFromCrawler()这个函数定义如何获取数据?(使用 DomCrawler)
步骤2:声明网站
config/crawler.php
'site_config' => [
W123job::class
]
步骤3:开始
$sites = ['W123job']; $config = [ 'concurrency' => 10, 'proxy' => null, 'browser' => 'guzzle', ]; $reset = false; //reset queue app(\Nggiahao\Crawler\Crawler::class)->run($sites, $config, $reset);
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全问题,请通过电子邮件 giahao9899@gmail.com 而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。请参阅 许可证文件 了解更多信息。