monkeyphp/php-spider

一个用PHP编写的简单网络爬虫。

0.0.2 2016-09-24 18:34 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:09:33 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

我需要一个非常简单的爬虫来爬取网站以预热缓存;这就是结果。

示例

简单

使用PhpSpider的最简单方法是创建一个实例,并将您想要爬取的网站的根URL传递给Spider::crawl方法。

按照设计,PhpSpider只会爬取以下页面

  • 返回content-type头为text/html
  • 与提供的根URL在同一域名上
use PhpSpider\Spider\Spider;

$spider = new Spider();
$spider->crawl('https://www.example.com');

高级

如果您需要覆盖PhpSpider的工作方式,您可以添加事件监听器以接收通知,然后可以影响PhpSpider的操作。

PhpSpider会触发5个事件

  • Spider::SPIDER_CRAWL_PRE - 在PhpSpider开始爬取网站之前触发。
  • Spider::SPIDER_CRAWL_POST - PhpSpider完成爬取后触发。
  • Spider::SPIDER_CRAWL_PAGE_PRE - 在爬取页面之前触发
  • Spider::SPIDER_CRAWL_PAGE_POST - 爬取页面后触发
  • Spider::SPIDER_CRAWL_PAGE_ERROR - 在爬取页面时发生错误时触发

您可以在本存储库的examples目录中找到示例。

    $ php ./examples/example_0.php
use PhpSpider\Spider\Spider;
use Zend\EventManager\Event;

$listener function ($event) {
    $uri = $event->getParam('uri');
    echo $uri;
};

$spider = new Spider();
$spider->getEventManager()->attach(Spider::SPIDER_CRAWL_PAGE_PRE, $listener, 1000);

$spider->crawl('https://www.example.com');

运行测试

$ vendor/bin/phpunit -c tests/phpunit.xml