node-readability-normalize

Turning any web page into a clean view.

Readability

Turn any web page into a clean view. This module is based on arc90's readability project.

Features

  1. Optimized for more websites.
  2. Supporting HTML5 tags(article, section) and Microdata API.
  3. Focusing on both accuracy and performance. 4x times faster than arc90's version.
  4. Supporting encodings such as GBK and GB2312.
  5. Converting relative urls to absolute for images and links automatically(Thank Guillermo Baigorria & Tom Sutton).

Example

Before -> After

Install

- --- ------- ----------------

Note that from v2.0.0, this module only works with Node.js >= 2.0. In the meantime you are still welcome to install a release in the 1.x series(by npm install node-readability@1) if you use an older Node.js version.

Usage

read(html [, options], callback)

Where

  • html url or html code.
  • options is an optional options object
  • callback is the callback to run - callback(error, article, meta)

Example

--- ---- - ----------------------------

------------------------------------------------------- ------------- -------- ----- -
  -- ---- -------
  -----------------------------
  -- -----
  ---------------------------

  -- ---- ------ ----
  --------------------------
  -- ---
  ------------------------------

  -- -------- ------ ---- ------- ---
  ------------------

  -- ----- ------- -- ----- -- ----- --- ------- -----
  ----------------
---

NB If the page has been marked with charset other than utf-8, it will be converted automatically. Charsets such as GBK, GB2312 is also supported.

Options

node-readability will pass the options to request directly. See request lib to view all available options.

node-readability has two additional options:

  • cleanRulers which allow set your own validation rule for tags.

If true rule is valid, otherwise no. options.cleanRulers = [callback(obj, tagName)]

--------- -
  ------------ -
    ------------- ---- -
      ------ --- --------- -
        ---------------------------- --- ----------------------- -
          ------ -----
        -
      -
    -
  --- ------------- -------- --------- -
    -----
  ---
  • preprocess which should be a function to check or modify downloaded source before passing it to readability.

options.preprocess = callback(source, response, contentType, callback);

--------- -
  ----------- ---------------- --------- ------------ --------- -
    -- -------------- - ------------ -
      ------ ------------ ---------- -------
    -
    -------------- --------
  -- ------------- -------- --------- -
    -----
  ---

article object

content

The article content of the web page. Return false if failed.

title

The article title of the web page. It's may not same to the text in the <title> tag.

textBody

A string containing all the text found on the page

html

The original html of the web page.

document

The document of the web page generated by jsdom. You can use it to access the DOM directly(for example, article.document.getElementById('main')).

meta object

response object from request lib. If you need to get current url after all redirect or get some headers it can be useful.

Why not Cheerio

This lib is using jsdom to parse HTML instead of cheerio because some data such as image size and element visibility isn't able to acquire when using cheerio, which will significantly affect the result.

Contributors

https://github.com/luin/node-readability/graphs/contributors

License

This code is under the Apache License 2.0. http://www.apache.org/licenses/LICENSE-2.0

HomePage

https://github.com/liulangyu90316/readability-normalize

Repository

git://github.com/liulangyu90316/readability-normalize.git

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005667e81e8991b448e28fa


猜你喜欢

  • npm包iupick使用教程

    介绍 iupick 是一个功能强大的 JavaScript 库,它可以从一组选项中自动完成输入框的文本。iupick 可以精确匹配用户输入的字符,得出最相关的选项。

    3 年前
  • npm 包 neutrino-preset-pragmatic-react 使用教程

    在前端开发的过程中,使用现成的 npm 包可以大大提高效率,而 neutrino-preset-pragmatic-react 是一个十分实用的 npm 包,本文将介绍如何使用它进行项目开发。

    3 年前
  • npm 包 react-rebase 使用教程

    前言 React 是前端界最热门的框架之一,而且由于其组件化的特性,使得其流行度非常高。但是,由于不可避免的业务变化,经常需要对不同的数据源进行操作,为了避免每次都重新获取数据、渲染组件的麻烦,可以使...

    3 年前
  • npm 包 yo-brain-games 的使用教程

    简介 yo-brain-games 是一个基于命令行的小游戏集合,由 Node.js 开发而来,采用了 Inquirer.js 和 Chalk 这两个 npm 包,可以在终端上运行。

    3 年前
  • npm 包 eager-loader 使用教程

    介绍 在前端开发中,为了提高网站的访问速度,可以使用图片懒加载来延迟图片的加载。但是,如果图片数量较多,懒加载也会影响性能。这时,我们可以使用 eager-loader,一个 npm 包,来提前加载图...

    3 年前
  • npm 包 @fibjs/copy 使用教程

    简介 @fibjs/copy 是一个基于 FibJS 的 npm 包,用于在 FibJS 的应用程序中进行文件拷贝操作。本文将为读者提供一份详细的使用教程,帮助读者快速上手使用该 npm 包,并给出一...

    3 年前
  • npm 包 ekuiter-opencpq 使用教程

    在前端开发中,使用 npm 包来加速开发效率已经成为一个不可避免的趋势。在这篇文章中,我们来介绍一款名为 ekuiter-opencpq 的 npm 包,它可以帮助我们更加方便快捷地操作 Canvas...

    3 年前
  • npm 包 @cgjs/http 使用教程

    前言 随着互联网的不断发展,前端技术也在不断的更新,越来越多的开发者对前端技术进行学习和探索,不断使前端技术更加成熟和完善。在众多的前端技术中,npm 包 @cgjs/http 是一款非常强大的工具,...

    3 年前
  • npm 包 node-omron-hvc-p2 使用教程

    简介 node-omron-hvc-p2 是一个适用于 Node.js 的 npm 包,它允许你与欧姆龙 HVC-P2 人脸识别模块进行通信。该模块支持多种人脸数据的提取和追踪功能,可以帮助你实现一些...

    3 年前
  • npm 包 osixia-angular2-busy 使用教程

    在开发前端应用的过程中,我们经常会需要在页面中显示 loading 状态,让用户知道应用正在加载数据。 osixia-angular2-busy 是一个用于 Angular 2+ 的开源组件库,可以让...

    3 年前
  • npm 包 @cgjs/domain 的使用教程

    前言 随着互联网时代的到来,web前端技术越来越重要,使用 npm 包成为前端开发中不可或缺的一环。本文主要介绍 npm 包 @cgjs/domain 的使用教程,为前端开发人员提供详细的指导意义。

    3 年前
  • npm 包 @sapien/package-name 使用教程

    简介 npm 是 Node.js 的包管理器,它允许我们在项目中轻松地引用和管理依赖。@sapien/package-name 是一个 npm 包,它提供了一些有用的前端工具和组件,让我们的开发变得更...

    3 年前
  • npm 包 coinpouch 使用教程

    前言 在以太坊、比特币等区块链应用开发中,钱包功能是不可或缺的。而 coinpouch 就是一款适用于 web3.js 库的区块链钱包 npm 包。Coinpouch 支持包括以太坊,比特币等多种加密...

    3 年前
  • npm 包 dynalock 使用教程

    简介 dynalock 是一个基于 AWS DynamoDB 和 Node.js 的分布式锁解决方案,特别适用于云原生应用场景。它提供了简单易用的 API 和高可用性的实现,使得多个 Node.js ...

    3 年前
  • npm 包 @liuxinqiang/test 使用教程

    在前端开发中,npm 包是非常常见的工具。npm 包可以帮助我们快速地引入常用的库和工具,从而提高我们的开发效率。今天,我们来介绍一个名为 @liuxinqiang/test 的 npm 包,它可以用...

    3 年前
  • npm 包 webpack-xml-loader 使用教程

    介绍 webpack-xml-loader 是一个用于加载 XML 文件的 webpack loader。它可以将 XML 文件转换成 JavaScript 模块,以便在代码中方便地访问和使用其中的内...

    3 年前
  • npm 包 woowahan-cli 使用教程

    简介 woowahan-cli 是一个基于 Node.js 平台的 npm 包,其主要用于快速生成 Web 应用项目的脚手架工具。使用该工具可以大大减少项目初始化时的繁琐操作,提高项目开发效率。

    3 年前
  • npm包ember-cli-shopify-draggable-shim使用教程

    摘要 本文章介绍了如何使用ember-cli-shopify-draggable-shim npm包,该包是可以实现拖动交互功能的轻量级框架,特别适合用于Web应用程序和移动应用程序中的交互设计。

    3 年前
  • npm 包 lol-stats-api 使用教程

    lol-stats-api 是一个用于获取英雄联盟 (League of Legends, 简称为 LoL) 游戏数据的 npm 包。它可以让开发者轻松地获取英雄联盟游戏数据并进行处理分析。

    3 年前
  • npm 包 travix-css-themes-polyfill 使用教程

    在前端开发过程中,我们经常会使用一些 CSS 主题或者样式库。如果我们想要让自己的网站或者应用程序兼容多个浏览器、多个平台,就需要使用一些 CSS polyfill 库。

    3 年前

相关推荐

    暂无文章