Javascript 抓取网站以检索html元素和相关样式

Javascript 抓取网站以检索html元素和相关样式,javascript,node.js,web-scraping,puppeteer,cheerio,Javascript,Node.js,Web Scraping,Puppeteer,Cheerio,我正试图从网站上抓取所有带有标记的元素,例如$('header')及其相关样式。 本质上,循环遍历每个元素,获取它的关联css并将其全部转储到一个文件中 目前,我已设置以下内容: // npm install --save request request-promise cheerio puppeteer const rp = require("request-promise"); const puppeteer = require("puppeteer"); var fs = require

我正试图从网站上抓取所有带有标记的元素,例如$('header')及其相关样式。 本质上,循环遍历每个元素,获取它的关联css并将其全部转储到一个文件中

目前,我已设置以下内容:

// npm install --save request request-promise cheerio puppeteer

const rp = require("request-promise");
const puppeteer = require("puppeteer");
var fs = require("fs");
const $ = require("cheerio");
const url = "url here";

puppeteer
    .launch()
    .then(function(browser) {
        return browser.newPage();
    })

    .then(function(page) {
        return page.goto(url, {waitUntil: 'load', timeout: 0}).then(function() {
            return page.content();
        });
    })

    .then(function(html) {
        let header = $('#header', html);

        fs.writeFile("test.txt", header, (err) => {
            if (err) console.log(err);
            console.log("Successfully Written to File.");
        });
    })

    .catch(function(err) {
        console.log(err)
    });

我一直在思考如何循环所有儿童元素并抓住他们的风格。如果您有任何建议,我们将不胜感激。

您可以使用
方法。children([selector])
,刚刚在cheerio文档中看到,它将提供数组,您可以使用我的想法并循环它,您尝试过吗?

在cheerio中,您可以循环类似下面的事件

constresult=$('.listing>tbody:nth child(1)tr')。每个((i,item)=>{
const$item=$(item);
const comicName=$item.find('td>a').text().trim();
});