在前端开发中,经常需要从网页中抓取数据以显示或分析。而 MetaScraper 是一款非常优秀的网页元数据抓取工具,可以快速准确地获取网页元数据。然而在使用 MetaScraper 过程中,有些数据可能需要进一步处理或格式化,这时候 @plaa/metascraper-helpers 就可以派上用场了。它是 MetaScraper 的一个辅助工具,可以帮助我们更方便地处理抓取到的数据。
安装
@plaa/metascraper-helpers 是一个 npm 包,可以通过以下命令进行安装:
npm install @plaa/metascraper-helpers
安装之后,在代码中引入该包:
const { normalize } = require('@plaa/metascraper-helpers')
使用
@plaa/metascraper-helpers 提供了多个方法,包括 normalize、absoluteUrl、mapValues 等。下面将对其中的一些较为常用的方法进行介绍。
normalize
normalize 可以帮助我们将元数据中的日期、数字、字符串等格式标准化。对于日期,可以将其转换为符合 ISO 标准的字符串格式;对于数字,可以将其转换为 Number 类型;对于字符串,可以去掉首尾空格。
-- -------------------- ---- ------- ----- ---- - - ------ - ---- -- ----- ------------- ------ -------- --------- ------ ------ - ----- ---- - --------------- - ------ ----- ----- ------- ------ --------- --------- ----- -- ----------------- --- - --- - - - ------ ------- - ----- --------------------------- - ------ ----- - --------- ------ ----- - - --
absoluteUrl
在网页抓取的过程中,有些链接是相对路径,需要转换成绝对路径才能正确地使用。absoluteUrl 就是用来将相对路径转换成绝对路径的。
const pageUrl = 'https://www.example.com' const imgUrl = '/images/logo.png' const absoluteImgUrl = absoluteUrl(pageUrl, imgUrl) console.log(absoluteImgUrl) // 输出:https://www.example.com/images/logo.png
mapValues
mapValues 可以帮助我们对一个对象的值进行映射。例如,我们可以将元数据中的一些属性值翻译成另一种语言。
-- -------------------- ---- ------- ----- ---- - - ------ ------- -------- ----- ----- -- - -------------- - ----- ------------ - - ------ --------- ----- ---------- - ----- ---------- - --------------- ------- ---- -- - ------ ----------------- -- ----------------------- --- - --- - - - ------ --------- - ----- --------- - - --
示例代码
下面是一个完整的示例,展示了如何使用 @plaa/metascraper-helpers 来处理元数据。
-- -------------------- ---- ------- ----- - ------ - - ---------------------- ----- --- - -------------- ----- - ---------- ------------ --------- - - ------------------------------------ ----- --- - ------------------------- ----- -------- ------ - ----- - ----- ----- ---- ------- - - ----- -------- ----- -------- - ----- ------------ - ------------------------------- ------------------------------ ------------------------------------- ------------------------------- ----------------------------- - -- ---------- ---- --- ---- -- - ----- ---------- - -------------------------------------------- -- ------------ - ------ --------------------- - -- -- -- ----- ------- - ------------------- - ------ ----- ----- ------- ----- ----- ------ -------------- ---- -------------- ----------- ----- -- ----- ------------ - ------------------ ------- ---- -- - -- ---- --- -------- - ------ ------- - ----- - ------ ----- -- ------------------------- - ------
在代码中,我们首先使用 Metascraper 获取元数据,然后使用 normalize 对元数据进行标准化,使其更易于使用。接下来使用 absoluteUrl 将相对路径转换成绝对路径,以便在前端页面上正确显示图片和链接。最后使用 mapValues 对元数据进行映射,完成中文翻译。
结语
@plaa/metascraper-helpers 可以大大减少我们在处理抓取到的数据时的工作量,让我们能够更快速地将网页元数据分析和展示在页面上。使用 @plaa/metascraper-helpers 可以避免重复的操作和出错的可能,因此建议在使用 Metascraper 进行网页元数据抓取时,尽可能地使用 @plaa/metascraper-helpers 辅助工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/103641