繁体   English   中英

如何通过Node.js从xml检索URL?

[英]How can I retrive URL from xml by Node.js?

我正在抓取网页。 目前,我想抓取一个网站。 我有一个来自robots.txt文件的xml文件链接。 现在,我想从该xml中读取所有url。 但是不能这样做。 有人可以帮我弄清楚吗?

XML格式:

<urlset>
    <url>
       <loc>http://www.xxxx.com/</loc>
       <changefreq>test</changefreq>
    </url>
    <url>
       <loc>http://www.xxxx.com/</loc>
       <changefreq>test</changefreq>
    </url>
</urlset>

这是我的代码:

        var fs = require('fs')
          , flow = require('xml-flow')
          , inFile = fs.createReadStream(xml_file_url)
          , xmlStream = flow(inFile)
        ;

        xmlStream.on('tag:urlset', function(err,url) {
            if(err)
                return console.log(err);
          console.log(url);
          res.send('Check your console!')

        }); 

我想要loc的所有url并将它们推入数组。 我怎么解决这个问题? 提前致谢。

您可以选择tag:loc并将每个标签推送到数组:

var fs = require('fs'),
    flow = require('xml-flow'),
    http = require('http');

var file = fs.createWriteStream('site.xml');

http.get('http://ajkerdeal.com/sitemap.xml', function(res) {
    res.on('data', function(data) {
        file.write(data);
    }).on('end', function() {
        file.end();

        var inFile = fs.createReadStream("site.xml"),
            xmlStream = flow(inFile);

        var array = [];
        xmlStream.on('tag:loc', function(url) {
            array.push(url.$text);
        });

        xmlStream.on('end', function(url) {
            console.log(array);

        });
    })
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM