blanchonvincent / search-engine-crawler
ZF2 模块 v0.4.3 - SearchEngineCrawler 是一个 SEO/SEA/SMO 爬虫。
该软件包的官方仓库似乎已不存在,因此软件包已被冻结。
0.4.2
2013-03-02 20:21 UTC
Requires
- php: >=5.3.3
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2019-04-29 00:46:09 UTC
README
版本 0.4.X 由 Vincent Blanchon 创建
简介
SearchEngineCrawler 是一个 SEO/SEA/SMO 爬虫。该爬虫使用原生 PHP 和 Zend Framework 2 的几个软件包。
本项目需要贡献者以保持项目更新并提高测试,以使项目更加稳定。
许可证
本作品受 Creative Commons Attribution-NonCommercial 3.0 Unported License 许可。
要求
- PHP 5.3.3
- libxml2 >= 2.7.8,使用以下命令查看您的版本:
php -i | grep "libxml2"
安装
- 安装 composer
curl -sS https://getcomposer.org/installer | php
- 使用 composer 安装爬虫
php composer.phar require blanchonvincent/search-engine-crawler:dev-master
原生 PHP 中的使用
对 Google Web 进行简单搜索
require_once __DIR__ . '/vendor/autoload.php'; $googleWeb = new \SearchEngineCrawler\Engine\Google\Web(); $match = $googleWeb->match('zend framework', 'http://framework.zend.com'); echo sprintf('Link has found in position "%s"', $match->getPosition()); echo sprintf('Link has found in page "%s"', $match->getPage());
您可以指定链接类型、语言、匹配选项等
require_once __DIR__ . '/vendor/autoload.php'; use SearchEngineCrawler\Engine\Link\Builder\Google\AbstractGoogle as GoogleLinkBuilder; $googleWeb = new \SearchEngineCrawler\Engine\Google\Web(); $match = $googleWeb->match('zend framework', 'http://framework.zend.com', array( 'links' => array('natural', 'image', 'video'), 'builder' => array( 'lang' => GoogleLinkBuilder::LANG_FR, // en by default 'host' => GoogleLinkBuilder::HOST_FR, // com by default ), 'match' => array( 'strictMode' => true, // each uri path must match strictly, true by default 'strictDns' => false, // do not check subdomain, true by default ), )); echo sprintf('Link has found in position "%s"', $match->getPosition()); echo sprintf('Link has found in page "%s"', $match->getPage());
对 Google Web 进行简单爬取
require_once __DIR__ . '/vendor/autoload.php'; use SearchEngineCrawler\Engine\Link\Builder\Google\AbstractGoogle as GoogleLinkBuilder; $googleWeb = new \SearchEngineCrawler\Engine\Google\Web(); $set = $googleWeb->crawl('rooney', array( 'links' => array('natural', 'image', 'video'), 'builder' => array( 'lang' => GoogleLinkBuilder::LANG_FR, // en by default 'host' => GoogleLinkBuilder::HOST_FR, // com by default ), )); $linkSet = $set->getPage(1)->getLinks(); echo sprintf('There are %s natural links !', count($linkSet->getNaturalResults())); echo sprintf('There are %s image links !', count($linkSet->getImageResults())); echo sprintf('There are %s video links !', count($linkSet->getVideoResults())); foreach($linkSet as $position => $result) { echo 'Position :' . ($position+1); echo 'Link :' . $result->getLink(); echo 'Ad :' . $result->getAd(); }
功能
您可以爬取并匹配
-
Google Web(自然、图片、视频、产品、高级、底部高级、地图和新闻)
-
Google 图片(图片)
-
Google 视频(视频和自然)
-
Google 书籍(书籍和高级)
-
Google 新闻(新闻、图片和自然)
-
Google 购物(产品、高级和底部高级)
-
YouTube(视频)
页面信息可用
- 结果数量
- 查询建议
- 单词拼写
链接信息
- 扩展:sitelinks
- 丰富片段:产品和价格
测试
- 使用 ./run.sh 运行单元测试
- 使用 ./debug.sh 运行单元测试,失败时停止
- 使用 ./clean.sh 清理页面结果(待办事项)
待办事项
爬取
- YouTube(高级和底部高级)+ 元数据
- Dailymotion
- Google 地图
- Google 地址
其他事项
- 移动爬虫
- 获取并改进丰富片段和扩展(评分、电话、作者姓名)
代码
- 改进结果链接类型
- 改进工作流程
- 使用 50+ 用例改进单元测试