从web-scraping标签中删除空格nodejs

时间:2016-10-11 01:39:16

标签: javascript html node.js

我遇到的问题无法解决。我正在网页抓取更具体的网页 - 在nodejs中<tr>,并且能够抓取内容,但由于某种原因,格式并不理想。在console.log()中查看时,它有一堆空格。我尝试了.trim()和.replace(),但它并没有真正删除空格。我猜这是因为数据嵌套在div和table格式中。我不知道如何处理它。

此外,我尝试将其保存为数组,但所有输出都没有被​​分解,它只是一个数据块。如果已经有这个问题的答案,请提供链接并忽略我的帖子。

以下是代码的副本

var request = require('request');
var cheerio = require('cheerio');
var URL = 'http://www.hcad.org';

var content = [];
var Tr = [];
request(URL, function(error, response,html){
if(error){
    console.log('Error happened: ', error);
}
if (response.statusCode !== 200) {
    console.log('Invaled response code returned: ', response.statusCode);
}
var $ = cheerio.load(html);


$('tr').each(function (i, element) {

    content = [];
    var a = $(this).prev();
    var trimmed_a = a.text();

    trimmed_a = trimmed_a.trim();
    var str = trimmed_a.replace(/(\r\n|\n|\r|\t)/gm, " ");
    var newStr = str.replace(/[^\x20-\x7E]/gmi, "");;

    content.push(newStr.trim());
    console.log(newStr.trim());
});



})

1 个答案:

答案 0 :(得分:0)

我认为您在Regex to replace multiple spaces with a single space

中建议使用空格替换替换
string = string.replace(/\s\s+/g, ' ');

有关使用jQuery的缩减版本,请参阅sample