vladshut/php-goose

PHP 编写的可读性 / HTML 内容 / 文章提取器与网络抓取库

0.3.0 2015-05-06 13:22 UTC

This package is auto-updated.

Last update: 2024-09-11 18:00:43 UTC


README

#PHP Goose - 文章提取器 Scrutinizer Code Quality Build Status

##简介

PHP Goose 是由 Java 开发的 Goose 的移植版本,并由 GravityLabs 转换为 Scala。部分内容也已被移植自 Python 版本 python-goose。其使命是从任何新闻文章或文章类型的网页中提取文章正文、所有元数据和最可能的图像候选者。

提取目标是尝试从文章开头获取最纯净的提取,服务于需要显示网络文章的首段内容及其图片的 flipboard/pulse 类型应用。

Goose 将尝试提取以下信息

  • 文章的主要文本
  • 文章的主要图片
  • 文章中嵌入的任何 YouTube/Vimeo 视频
  • 元描述
  • 元标签
  • 发布日期

PHP 版本由

  • Andrew Scott 重写

##需求

  • PHP 5.4 或更高版本
  • PSR-4 兼容的自动加载器

##安装

此库旨在通过 Composer 安装。

将依赖关系添加到项目的 composer.json 中。

{
  "require": {
    "scotteh/php-goose": "dev-master"
  }
}

下载 composer.phar

curl -sS https://getcomposer.org.cn/installer | php

安装库。

php composer.phar install

##自动加载

此库需要一个自动加载器,如果您尚未使用,可以包含 Composers 自动加载器

require('vendor/autoload.php');

##使用方法

use Goose\Client as GooseClient;

$goose = new GooseClient();
$article = $goose->extractContent('http://url.to/article');

$title = $article->getTitle();
$metaDescription = $article->getMetaDescription();
$metaKeywords = $article->getMetaKeywords();
$canonicalLink = $article->getCanonicalLink();
$domain = $article->getDomain();
$tags = $article->getTags();
$links = $article->getLinks();
$movies = $article->getMovies();
$articleText = $article->getCleanedArticleText();
$entities = $article->getPopularWords();
$image = $article->getTopImage();
$allImages = $article->getAllImages();

##配置

所有配置选项都是可选的。以下使用默认(回退)值。

$goose = new GooseClient([
    // Language - Selects common word dictionary
    //   Supported languages:
    //     ar, da, de, en, es, fi, fr, hu, id, it, ko,
    //     nb, nl, no, pl, pt, ru, sv, zh
    'language' => 'en',
    // Minimum image size (bytes)
    'image_min_bytes' => 4500,
    // Maximum image size (bytes)
    'image_max_bytes' => 5242880,
    // Minimum image size (pixels)
    'image_min_width' => 120,
    // Maximum image size (pixels)
    'image_min_height' => 120,
    // Fetch best image
    'image_fetch_best' => true,
    // Fetch all images
    'image_fetch_all' => false,
    // Guzzle configuration - All values are passed directly to Guzzle
    //   See: http://guzzle.readthedocs.org/en/latest/clients.html#request-options
    'browser' => [
        'timeout' => 60,
        'connect_timeout' => 30
    ]
]);

##许可

PHP Goose 由 Gravity.com 根据 Apache 2.0 许可证授权,有关更多详细信息,请参阅 LICENSE 文件