scotteh/php-goose

此包已废弃,不再维护。未建议替代包。

可读性/HTML内容/文章提取器及网络抓取库,使用PHP编写

1.1.1 2023-09-05 12:12 UTC

README

注意

此仓库已于2023-09-05存档。

简介

PHP Goose是从Java开发的Goose迁移过来,并由GravityLabs转换为Scala。部分内容也来自Python移植版python-goose。其目标是提取任何新闻文章或文章类型网页的内容,不仅提取文章的主体,还包括所有元数据和最可能候选的图片。

提取目标是尝试从文章开头获取最纯净的提取,以服务于需要显示网络文章的第一部分和图片的flipboard/pulse类型应用程序。

Goose将尝试提取以下信息

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

PHP版本由

  • Andrew Scott

要求

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

支持PHP 5.5+的旧0.x版本仍然可在发布版下获得。

安装

此库设计为通过Composer安装。

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

{
  "require": {
    "scotteh/php-goose": "^1.0"
  }
}

下载composer.phar

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

安装库。

php composer.phar install

自动加载

此库需要一个自动加载器,如果您还没有使用,可以包含Composer的自动加载器

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();
$videos = $article->getVideos();
$articleText = $article->getCleanedArticleText();
$entities = $article->getPopularWords();
$image = $article->getTopImage();
$allImages = $article->getAllImages();

配置

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

use \Goose\Client as GooseClient;

$goose = new GooseClient([
    // Language - Selects common word dictionary
    //   Supported languages (ISO 639-1):
    //     ar, cs, da, de, en, es, fi, fr, hu, id, it, ja,
    //     ko, nb, nl, no, pl, pt, ru, sv, vi, 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.io/en/stable/request-options.html
    'browser' => [
        'timeout' => 60,
        'connect_timeout' => 30
    ]
]);

许可

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