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

问题描述 投票:0回答:1

我正在尝试通过提供的标签来抓取网站以获取所有元素,例如$('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)
    });

我对如何遍历所有子元素并掌握其样式感到困惑。任何建议将不胜感激。

javascript node.js web-scraping puppeteer cheerio
1个回答
0
投票

您可以使用.children([selector])的方法,如在cheerio文档中所看到的,它将提供array,您可以使用我认为的并循环它,您是否尝试过?

© www.soinside.com 2019 - 2024. All rights reserved.