nggiahao/crawler

0.1.0 2020-09-13 16:52 UTC

This package is auto-updated.

Last update: 2024-09-17 18:11:31 UTC


README

Latest Version on Packagist Total Downloads

本软件包的职责是从其他网站收集数据,使用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)。请参阅 许可证文件 了解更多信息。