monkeyphp / php-spider
一个用PHP编写的简单网络爬虫。
0.0.2
2016-09-24 18:34 UTC
Requires
- php: >=5.3.3
- zendframework/zend-dom: ^2.4
- zendframework/zend-eventmanager: ^2.4
- zendframework/zend-http: ^2.4
- zendframework/zend-uri: ^2.4
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is not auto-updated.
Last update: 2024-09-14 20:09:33 UTC
README
我需要一个非常简单的爬虫来爬取网站以预热缓存;这就是结果。
示例
简单
使用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