美文网首页
爬虫补环境 jsdom

爬虫补环境 jsdom

作者: 会爬虫的小蟒蛇 | 来源:发表于2022-09-20 16:52 被阅读0次

    jsdom是一个纯粹由 javascript 实现的一系列 web标准,特别是 WHATWG 组织制定的DOM和HTML标准,用于在 nodejs 中使用。大体上来说,该项目的目标是模拟足够的Web浏览器子集,以便用于测试和挖掘真实世界的Web应用程序。

    参考文档:

    入门

    // npm install jsdom
    
    const jsdom = require("jsdom");  // 引入 jsdom
    const { JSDOM } = jsdom;  // 引出 JSDOM 类, 等同于 JSDOM = jsdom.JSDOM
    
    const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);  // 创建DOM对象
    
    console.log(dom.window.document.querySelector("p").textContent);
    

    配置DOM

    const dom = new JSDOM(``, {
        url: "https://example.org/",  // window.location,document.URL
        referrer: "https://example.com/",  // document.referrer
        contentType: "text/html",  // document.contentType
        userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42",  // UA
        includeNodeLocations: true  // 保留由HTML解析器生成的位置信息,允许使用nodeLocation()方法
    });
    

    执行JS

    const jsdom = require("jsdom");  // 引入 jsdom
    const { JSDOM } = jsdom;  // 引出 JSDOM 类, 等同于 JSDOM = jsdom.JSDOM
    
    const dom = new JSDOM(
        `<body>
                  <script>
                  document.body.appendChild(document.createElement("hr"));
                  console.log("hello world");
                  </script>
               </body>`, 
        { runScripts: "dangerously" }  // 需要配置runScripts 否则不运行 JS
        );
    

    设置Cookie

    const cookieJar = new jsdom.CookieJar(store, options);
    const dom = new JSDOM(``, { cookieJar });
    

    相关文章

      网友评论

          本文标题:爬虫补环境 jsdom

          本文链接:https://www.haomeiwen.com/subject/esxiortx.html