任何人都可以为我执行此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
答案 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>