执行nodejs程序,无法安装模块

时间:2016-04-30 20:49:38

标签: node.js

任何人都可以为我执行此node.js程序吗?

我无法在Windows中安装xml-parser。

//to install xml-parser module in windows type this in cmd:   npm install xml-parser
var fs = require('fs'); 
var parse = require('xml-parser');
var xml = fs.readFileSync('sample_table.html');
    var get_parser = parse(xml);
    var in_csv = [];
    get_parser.root.children.forEach(function(tr) {
        data.push(tr.children.map(function(td) {
            return td.content;
        }).join(','));
    });
    in_csv = in_csv.join('\r\n');
    fs.writeFile('dates.csv', in_csv, function(err){
        if(err){
            return console.error(err);
    }

这是sample_table.html

<table>
<tbody>
<tr style="color:#333333;background-color:White;">
<td>2016-04-28</td>
<td>RLYUDP-DP</td>
<td>RELIANCE FIXED HORIZON FUND XXX SERIES 18-- DIVIDEND PAYOUT</td>
<td>F204KB1254</td>
<td>10.0000</td>
<td>KARVY</td>
</tr>
<tr style="color:#333333;background-color:White;">
<td>2016-04-28</td>
<td>RLYUGP-GR</td>
<td>RELIANCE FIXED HORIZON FUND XXX SERIES 18- GROWTH</td>
<td>YUGP</td>
<td>10.0000</td>
<td>KARVY</td>
</tr>
<tr style="color:#333333;background-color:White;">
<td>2016-04-28</td>
<td>UTCXDP-DP</td>
<td>UTI-CAPITAL PROTECTION ORIENTED SCHEME - SERIES VII - IV 1278 DAD PLAN</td>
<td>CXDP</td>
<td>N</td>
<td>INF789FC1691</td>
<td>10.0000</td>
<td>KARVY</td>

</tbody>
  </table>

或者您可以点击这里的直接链接https://github.com/suresach/nodejs_scraper

2 个答案:

答案 0 :(得分:0)

我没有看到node或npm的任何问题。我看到你的代码上有一个拼写错误:

replace 
        data.push(tr.children.map(function(td) {
with
        in_csv.push(tr.children.map(function(td) {

以下是我测试的输出:

C:\home\node\codes>node -v
v6.0.0

C:\home\node\codes>npm -v
3.8.6

C:\home\node\codes>npm install xml-parser
C:\home\node\codes
+-- bitcore-mnemonic@1.0.1
+-- express@4.13.4
`-- xml-parser@1.2.1

npm WARN enoent ENOENT: no such file or directory, open 'C:\home\node\codes\package.json'
npm WARN codes No description
npm WARN codes No repository field.
npm WARN codes No README data
npm WARN codes No license field.

C:\home\node\codes>cat foo.js
var fs = require('fs');
var parse = require('xml-parser');
var xml = fs.readFileSync('sample_table.html', 'utf8');
var get_parser = parse(xml);
var in_csv = [];
get_parser.root.children.forEach(function(tr) {
        in_csv.push(tr.children.map(function(td) {
            return td.content;
        }).join(','));
    });
    in_csv = in_csv.join('\r\n');

    fs.writeFile('dates.csv', in_csv, function(err){
        if(err){
            return console.error(err);
    }
});

C:\home\node\codes>node foo.js

C:\home\node\codes>cat dates.csv
,,
C:\home\node\codes>

答案 1 :(得分:0)

这是修改后的代码 - 基本上在mapper函数中需要另一个重定向。希望这会有所帮助。

var fs = require('fs'); 
var parse = require('xml-parser');
var xml = fs.readFileSync('sample_table.html', 'utf8');
var data = [];
var get_parser = parse(xml);
var in_csv = [];
get_parser.root.children.forEach(function(tr) {

        in_csv.push(tr.children.map(function(td) {
            return td.children.map(function(child) {
                return child.content;
            }
                );
        }).join(','));
    });
    in_csv = in_csv.join('\r\n');

    fs.writeFile('dates.csv', in_csv, function(err){
        if(err){
            return console.error(err);
    }
});



C:\home\node\codes>cat dates.csv
2016-04-28,RLYUDP-DP,RELIANCE FIXED HORIZON FUND XXX SERIES 18-- DIVIDEND PAYOUT,F204KB1254,10.0000,KARVY,2016-04-28,RLYUGP-GR,REL
IANCE FIXED HORIZON FUND XXX SERIES 18- GROWTH,YUGP,10.0000,KARVY,2016-04-28,UTCXDP-DP,UTI-CAPITAL PROTECTION ORIENTED SCHEME - SE
RIES VII - IV 1278 DAD PLAN,CXDP,N,INF789FC1691,10.0000,KARVY
C:\home\node\codes>