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

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

    });

我被困在如何遍历所有子元素并获取它们的样式。任何建议将不胜感激。


青春有我
浏览 113回答 2
2回答

犯罪嫌疑人X

你可以使用方法.children([selector]),刚刚在cheerio文档中看到,它会给出数组,你可以使用我认为的并循环它,你试过吗?

Smart猫小萌

在cheerio中,你可以像下面这样循环事件const result = $('.listing > tbody:nth-child(1) tr').each((i, item) => {    const $item = $(item);    const comicName = $item.find('td > a').text().trim();});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript