【问题标题】:XML scraping using nodeJs使用 nodeJs 抓取 XML
【发布时间】:2020-06-29 18:02:22
【问题描述】:

我有一个非常大的 xml 文件,我是通过从计数中导出所有数据获得的,我正在尝试使用 web 抓取来使用cheerio 从我的代码中获取元素,但是我在格式化或类似的东西上遇到了问题。使用 fs.readFileSync() 读取它可以正常工作,并且 console.log 显示完整的 xml 文件,但是当我使用 fs.writeFileSync 写入文件时,它看起来像这样:

我的网页抓取代码输出空文件:

const cheerio = require('cheerio');
const fs = require ('fs');



var xml = fs.readFileSync('Master.xml','utf8');

             const htmlC = cheerio.load(xml);
                     var list = [];
             list = htmlC('ENVELOPE').find('BODY>TALLYMESSAGE>STOCKITEM>LANGUAGENAME.LIST>NAME.LIST>NAME').each(function (index, element) {
                list.push(htmlC(element).attr('data-prefix'));
             })
             console.log(list)
             fs.writeFileSync("data.html",list,()=>{})

【问题讨论】:

  • 只是为了确认一下,当你说你的网页抓取代码输出一个空文件时,你的意思是在执行结束时,data.html 是空的?

标签: node.js xml web-scraping cheerio tally


【解决方案1】:

您可以尝试检查以确保 Cheerio 没有解码所有 HTML 实体。变化:

const htmlC = cheerio.load(xml);

到:

const htmlC = cheerio.load(xml, { decodeEntities: false });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 2017-06-21
    • 2014-03-18
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多