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-12-17 18:42:14 UTC
README
Package này có nhiêm vụ thu thập dữ liệu từ các website khác sử dụng Guzzle, Phantomjs hay Puppeteer.
Nó sử dụng Amphp để có thể chạy nhiều process 1 lúc.
Installation
You can install the package via 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
Nếu bạn sử dụng Phantomjs hay Puppeteer thì hãy cài đặt chúng.
Usage
Step 1: Tạo Site
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()
trả về mảng các url sẽ được sử dụng trong lần chạy đầu tiênshouldCrawl()
định nghĩa như nào là 1 url cần phi vàoshouldGetData()
định nghĩa như nào là 1 url cần lấy datagetInfoFromCrawler()
hàm này định nghĩa viêc lấy data như thế nào? (sử dụng DomCrawler)
Step 2: Khai báo site
config/crawler.php
'site_config' => [
W123job::class
]
Step 3: Start
$sites = ['W123job']; $config = [ 'concurrency' => 10, 'proxy' => null, 'browser' => 'guzzle', ]; $reset = false; //reset queue app(\Nggiahao\Crawler\Crawler::class)->run($sites, $config, $reset);
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email giahao9899@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.