해결할 수없는 문제가 있습니다. 웹 페이지를 좀 더 구체적으로 작성한 - nodejs에 <tr>
을 입력하고 콘텐츠를 가져올 수 있지만 형식이 이상적이지 않습니다. 그것은 console.log()에서 볼 때 많은 흰 공백을 가지고 있습니다. 나는 .trim() 및 .replace()를 시도했지만 실제로는 공백을 제거하지 않았습니다. 데이터가 div 및 table 형식으로 중첩 되었기 때문에 공백이 있다고 생각합니다. 나는 그것을 다루는 방법을 모른다.웹 스크래핑에서 공백 제거 <tr> tags nodejs
또한 배열로 저장하려고했지만 모든 출력이 단 하나의 데이터 블록으로 분할되지 않았습니다. 이미이 질문에 대한 답변이 있으면 링크를 제공하고 내 게시물을 무시하십시오.
string = string.replace(/\s\s+/g, ' ');
는 jQuery를 사용하여 잘라 다운 버전 sample 참조 : 여기
코드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());
});
})
시도해 보려는 샘플 페이지를 추가 할 수 있습니까? – Dror
코드 (URL)에 있습니다 –
공백을 제거하기 위해 '바꾸기'를 사용 했습니까? http://stackoverflow.com/questions/1981349/regex-to-replace-multiple-spaces-with-a-single-space – Dror