一个前端,爱跑步、爱吉他、爱做饭、爱生活、爱编程、爱南芳姑娘,爱我所爱。世间最温暖又无价的是阳光、空气与爱,愿它们能带你去更远的地方。

  • 文章
  • 心情
  • 照片墙
  • 留言板
  • 工具
  • 友链
  • biaoblog

    专注web开发技术分享

    爬虫利器:jsDOM

    技术 338 2021-10-11 10:57

    需求:之前使用node做爬虫的时候,使用puppeteer来模拟浏览器

    然后抓取信息

    但是这样的效率和消耗太大了,

    所以需要一种更为效率的方法:直接使用axios来请求对应的url

    然后通过jsDom,渲染成一个虚拟的html然后进行取值

    废话不多说直接上代码:

    先安装jsdom

    npm i jsdom
    

    然后写下面实例化

    const jsdom = require("jsdom");
    const { JSDOM } = jsdom;
    const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
    console.log(dom.window.document.querySelector("p").textContent); // "Hello world"
    

    基础的代码逻辑明白了之后,

    把它使用到我们正常的业务里面:

    axios
      .get(url)
      .then((res) => {
           //注意:需要先return 一次 再下一个回调里面进行渲染,因为获取的html数据多的时候 就可能导致实例化失败
        return res.data;
      })
      .then((html) => {
        let dom = new JSDOM(`${html}`);
            //抓取到想要的元素的信息
         console.log(
           dom.window.document.querySelector(".product-single__title").textContent
         );
      });
    


    version:

      "jsdom": "16.7.0",
    


    参考地址:https://www.npmjs.com/package/jsdom

    文章评论

    评论列表(0