readability.php:HTML 文本内容提取的利器

readability.php:HTML 文本内容提取的利器

readability.php PHP port of Mozilla's Readability.js readability.php 项目地址: https://gitcode.com/gh_mirrors/rea/readability.php

在当今信息爆炸的时代,从繁杂的网页中提取出核心文本内容变得尤为重要。今天,我要向您推荐一个开源项目——readability.php,它可以帮助您轻松实现这一目标。

项目介绍

readability.php 是一个 PHP 端口版本的 Mozilla 的 Readability.js。它通过解析 HTML 文本(通常是新闻和其他文章),返回文章的标题、作者、主要图片和文本内容,同时去除导航栏、广告、页脚或其他非主要内容的部分。该项目的目标是实现与 Mozilla 版本的一对一端口,并紧密跟随其所有更新。

项目技术分析

readability.php 的核心是分析和评分 HTML 节点,根据其中的单词数量、链接类型和元素类型,确定哪些内容是相关的,哪些可以丢弃。它使用了 PHP 的 ext-dom、ext-xml 和 ext-mbstring 扩展,支持 PHP 8.1 及以上版本。项目代码大部分是一对一复制自 JavaScript 版本,并针对 PHP 语言进行了适当调整。

项目及技术应用场景

readability.php 的应用场景广泛,适用于新闻网站、文章聚合器或任何需要从 HTML 页面提取主要内容的场合。以下是几个具体的应用场景:

  1. 新闻抓取:自动从新闻网站抓取文章,并提取出干净的内容。
  2. 内容聚合:在内容聚合器中,快速提取并展示多个来源的文章内容。
  3. 教育工具:为学生提供无干扰的阅读环境,去除网页上的广告和杂乱内容。
  4. 文本分析:对大量文本进行内容分析,提取关键信息。

项目特点

以下是 readability.php 的几个显著特点:

  1. 纯净的内容提取:自动去除网页上的导航栏、广告和页脚等不必要内容。
  2. 灵活配置:提供多种配置选项,如去除特定类型的节点、处理相对 URL 等。
  3. 易于集成:通过 Composer 简单安装,并提供清晰的 API 接口。
  4. 性能优化:针对 PHP 优化,提供高效的 HTML 解析和内容提取。
  5. 安全考虑:虽然不包含内容清洗功能,但推荐与 HTML Purifier 等清洗库配合使用,确保输出内容的安全性。

以下是使用 readability.php 的一个简单示例:

<?php
require __DIR__ . '/vendor/autoload.php';
use fivefilters\Readability\Readability;
use fivefilters\Readability\Configuration;
use fivefilters\Readability\ParseException;

$readability = new Readability(new Configuration());

$html = file_get_contents('https://your.favorite.newspaper/article.html');

try {
    $readability->parse($html);
    echo $readability;
} catch (ParseException $e) {
    echo sprintf('Error processing text: %s', $e->getMessage());
}

在输出中,您可以通过调用相应的属性获取文章的标题、内容、摘要、主要图片等信息。

<h1><?= $readability->getTitle(); ?></h1>
<h2>By <?= $readability->getAuthor(); ?></h2>
<div class="content"><?= $readability->getContent(); ?></div>

总之,readability.php 是一个强大且灵活的 HTML 内容提取工具,无论是对于开发者还是内容创作者,都是一个不可或缺的助手。通过其高效的算法和易于使用的接口,您可以将精力集中在内容创作上,而不是内容提取的繁琐细节上。

readability.php PHP port of Mozilla's Readability.js readability.php 项目地址: https://gitcode.com/gh_mirrors/rea/readability.php

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芮奕滢Kirby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值