npm 包 @epegzz/node-scraper 使用教程

阅读时长 6 分钟读完

如今对于前端工程师来说,爬取数据不再是一个孤立的需求,他们需要收集不同网站上的数据以不同的形式呈现在自己的网站上。而 @epegzz/node-scraper 这个 npm 包则提供了一种方便快捷的方式去实现数据爬取。

什么是 @epegzz/node-scraper?

@epegzz/node-scraper 是一个 Node.js 环境下的 web 爬虫工具, 支持在常见的 web 页面中获取特定元素的值,它可以轻松地在网站上爬取指定数据并返回。

安装

使用 NPM 进行安装:

示例代码

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

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

规则定义

URL

配置爬取数据的网站 URL。

Method

获取网站数据的方式。支持的方法有:GET、POST、PUT 和 DELETE。

Selectors

表示你要爬取的数据的定义方式,selectors 是一个对象,可以其中包含多个键值对,每个键值对对应了对应 DOM 元素的查询方式。

例如:

这样我们就成功的查询了页面中 <header> 元素下的 <h1><h2> 元素,并且成功的将遍历的结果放在了 titledescription 里面,通过返回的数据可以直接使用。

目前支持的格式有:

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

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

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

其中,properties 类型的选择器支持更深的嵌套结构。

特定属性的获取

有时候我们还需要更 加精准的指定属性,此时我们可以直接指定:

其中,我们指定了需要查询的 img 元素,并且只需要其中包含的 src 属性。 此外,如果我们所要查询的元素不支持 src 属性,那么可以直接在 default 里刻画一张默认图片。

链式查询

如果同一个爬虫中需要反复查询不同链接,那么我们很可能需要考虑用链式查询的方式进行,例如:

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

最后的话

相信在文章中我们已经了解了如何使用 @epegzz/node-scraper,以及如何通过它支持我们需要的数据获取流程,这对于完善前端工作流会有很大的意义。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e19a563576b7b1ecb87

纠错
反馈