前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >爬虫利器:jsDOM

爬虫利器:jsDOM

作者头像
biaoblog.cn 个人博客
发布2022-08-11 19:38:22
发布2022-08-11 19:38:22
30400
代码可运行
举报
运行总次数:0
代码可运行

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

然后抓取信息

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

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

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

废话不多说直接上代码:

先安装jsdom

代码语言:javascript
代码运行次数:0
复制
npm i jsdom

然后写下面实例化

代码语言:javascript
代码运行次数:0
复制
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"

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

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

代码语言:javascript
代码运行次数:0
复制
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
     );
  });

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档