blanchonvincent/search-engine-crawler

ZF2 模块 v0.4.3 - SearchEngineCrawler 是一个 SEO/SEA/SMO 爬虫。

该软件包的官方仓库似乎已不存在,因此软件包已被冻结。

0.4.2 2013-03-02 20:21 UTC

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+ 用例改进单元测试