为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

青春有我 2021-12-23 14:48:25
我正在尝试抓取网站以获取带有提供的标签的所有元素,例如 $('header') 及其相关样式。本质上循环遍历每个元素并获取其关联的 css 并将其全部转储到一个文件中。目前我已经设置了以下内容:// npm install --save request request-promise cheerio puppeteerconst 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)    });我被困在如何遍历所有子元素并获取它们的样式。任何建议将不胜感激。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-12-23
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

在cheerio中,你可以像下面这样循环事件


const result = $('.listing > tbody:nth-child(1) tr').each((i, item) => {

    const $item = $(item);

    const comicName = $item.find('td > a').text().trim();

});


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信