一个高效的从 HTML 中提取正文的类库

Textractor

An efficient class library for extracting text from HTML.

一个高效的从HTML中提取正文的类库。

正文提取采用了基于文本密度的提取算法,支持从压缩的HTML文档中提取正文,每个页面平均提取时间为30ms,正确率在95%以上。

特色

  • 标签无关,提取正文不依赖标签;
  • 支持从压缩的HTML文档中提取正文内容;
  • 支持带标签输出原始正文;
  • 核心算法简洁高效,平均提取时间在30ms左右。

安装

  1. 安装包文件

    composer require "mylukin/textractor:dev-master"
  2. 添加 ServiceProvider 到您项目 config/app.php 中的 providers 部分:

    Lukin\Textractor\TextractorServiceProvider::class,
  3. 创建配置文件:

    php artisan vendor:publish --provider="Lukin\Textractor\TextractorServiceProvider"

    然后请修改 config/textractor.php 中对应的项即可。

使用

<?php
$url = 'http://news.163.com/17/0204/08/CCDTBQ9E000189FH.html';
// 创建提取实例
$textractor = new \Lukin\Textractor();
// 下载并解析文章
$article = $textractor->download($url)->parse();

printf('<div id="url">URL: %s</div>' . PHP_EOL, $url);
printf('<div id="title">Title: %s</div>' . PHP_EOL, $article->getTitle());
printf('<div id="published">Publish: %s</div>' . PHP_EOL, $article->getPublishDate());
printf('<div id="text">Text: <pre>%s</pre></div>' . PHP_EOL, $article->getText());
printf('<div id="html">Content: %s</div>' . PHP_EOL, $article->getHTML());

License

MIT

代码地址:https://github.com/mylukin/Textractor

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

只用过phpquery,明天试试这个,感谢分享

7年前 评论

给文档提个建议,本身没提到laravel,突然写到serviceProvider会对其他开发者造成疑惑。

还有这个给我感觉没有必要为了实现单例模式去增加serviceProvider到 app.php 中

7年前 评论

还有可以把一些方法放到 helper 文件通过composer引入吧

7年前 评论

@Hanccc 建议非常棒!有空了我改改。

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!