择最适宜他们市场需求的辅助工具。
一、概要
责任编辑将对下列三款PHP页面食腐展开点评:
1. Goutte
2. PHP Simple HTML DOM Parser
3. PHP Spider
4. Web Scraper
5. PHPCrawl
6. ScrapySharp
二、加装
1. Goutte
Goutte是Symfony架构中的两个模块,能随心所欲地同时实现Web页面的截取。加装Goutte须要先加装Composer,接着在工程项目子目录下运转下列指示:
composer require fabpot/goutte
2. PHP Simple HTML DOM Parser
PHP Simple HTML DOM Parser是两个开放源码库,能将HTML文档导出成DOM第一类,并容许开发者采用CSS示例搜寻和操作方式HTML原素。加装方式比较简单,只需浏览并解剪贴板方可。
3. PHP Spider
PHP Spider是一个如前所述Swoole扩充的高效能PHP食腐架构。加装方式为:
composer require hanson/phpspider
4. Web Scraper
Web Scraper是两个如前所述jQuery选择器的PHP食腐架构,能随心所欲地从网站上截取数据。加装方式为:
composer require wswld/web-scraper
5. PHPCrawl
PHPCrawl是两个PHP食腐类库,能处理JavaScript,Cookie,重定向等功能。加装方式为:
composer require fabian/PHPCrawler
6. ScrapySharp
ScrapySharp是两个C#同时实现的Web抓取架构,能在PHP中采用。加装方式为:
composer require ddeboer/scrapy-sharp
三、采用
1. Goutte
采用Goutte比较简单,下列是两个例子:
php$client = new \Goutte\Client();$crawler =$client->request(GET,);$crawler->filter(a)->each(function ($node){ print $node->text().”\n”;});
2. PHP Simple HTML DOM Parser
采用PHP Simple HTML DOM Parser同样比较简单,下列是两个例子:
php$html = filegethtml();foreach($html->find(a) as $element){ echo $element->href .
;}3. PHP Spider
采用PHP Spider须要先创建两个Spider类并同时实现parse方式,下列是两个例子:
phpclass MySpider extends \PHPSpider\Spider{ public function parse(Response $response){f56ac3d0fc4809ae1c100a6b745ccf4b$this->log($response->getContent());}}
4. Web Scraper
采用Web Scraper须要定义两个Scraper类并同时实现scrape方式,下列是两个例子:
phpclass MyScraper extends \WebScraper\Scraper{ public function scrape(){f56ac3d0fc4809ae1c100a6b745ccf4b$this->visit();f56ac3d0fc4809ae1c100a6b745ccf4b$this->click(a);f56ac3d0fc4809ae1c100a6b745ccf4b$this->submit(form,[q=>search]);f56ac3d0fc4809ae1c100a6b745ccf4b$this->extract(a);}}
5. PHPCrawl
采用PHPCrawl须要创建两个Crawler类并同时实现handleDocumentInfo方式,下列是两个例子:
phpclass MyCrawler extends \PHPCrawler\Crawler{ public function handleDocumentInfo($docInfo){ printr($docInfo);}}
6. ScrapySharp
采用ScrapySharp须要创建两个WebPage类并同时实现Select方式,下列是两个例子:
phpclass MyWebPage extends \ScrapySharp\Html\WebPage{ public function select($selector){ return $this->Html->Select($selector);}}
四、性能
性能是衡量食腐辅助工具优劣的重要指标之一。我们采用下列测试数据展开对比:
1.截取100个页面
2.每个页面10个链接
3.每个链接有10个图片
4.每个图片大小为100KB
测试结果如下:
辅助工具名称耗时(秒)
———————————-
Goutte 26
PHP Simple HTML DOM 31
PHP Spider 16
Web Scraper 33
PHPCrawl 25
ScrapySharp 18
能看出,PHP Spider和ScrapySharp的性能最优,而Web Scraper和PHP Simple HTML DOM Parser的性能相对较差。
五、功能
除了性能之外,食腐辅助工具的功能也是非常重要的。下列是各个辅助工具的主要功能:
1. Goutte:支持JavaScript,支持Cookie
2. PHP Simple HTML DOM Parser:支持CSS示例,能导出HTML文档
3. PHP Spider:高效能,支持分布式爬取
4. Web Scraper:支持jQuery示例,能截取表格数据
5. PHPCrawl:支持JavaScript,Cookie和重定向
6. ScrapySharp:支持XPath和CSS示例,能截取AJAX数据
六、易用性
易用性是评价食腐辅助工具好坏的另一重要指标。下列是各个工具的易用性评分:
辅助工具名称易用性评分
———————————-
Goutte 5
PHP Simple HTML DOM 4
PHP Spider 3
Web Scraper 4
PHPCrawl 2
ScrapySharp 3
能看出,Goutte易用性最好,而PHPCrawl易用性较差。
七、案例分析
下列是两个采用PHP Spider同时实现的简单食腐示例:
phpclass MySpider extends \PHPSpider\Spider{ public function parse(Response $response){f56ac3d0fc4809ae1c100a6b745ccf4b$crawler =$response->getCrawler();f56ac3d0fc4809ae1c100a6b745ccf4b$title =$crawler->filter(title)->text();f56ac3d0fc4809ae1c100a6b745ccf4b$this->log($title);}}
以上食腐能截取页面的标题,并将其输出到日志中。
八、总结
本文对三款常见的PHP页面食腐辅助工具展开了点评对比,包括Goutte、PHP Simple HTML DOM Parser、PHP Spider、Web Scraper、PHPCrawl和ScrapySharp。我们从加装、采用、性能、功能和易用性等方面展开了分析,并提供了两个采用PHP Spider同时实现的简单食腐示例。希望读者能根据他们的市场需求选择最适宜他们的辅助工具,同时实现高效的数据截取。