我遇到的问题无法解决。我正在网页抓取更具体的网页 - 在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());
});
})
答案 0 :(得分:0)
我认为您在Regex to replace multiple spaces with a single space:
中建议使用空格替换替换string = string.replace(/\s\s+/g, ' ');
有关使用jQuery的缩减版本,请参阅sample。