2016-10-11 2 views
0

해결할 수없는 문제가 있습니다. 웹 페이지를 좀 더 구체적으로 작성한 - 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()); 
}); 



}) 
+0

시도해 보려는 샘플 페이지를 추가 할 수 있습니까? – Dror

+0

코드 (URL)에 있습니다 –

+0

공백을 제거하기 위해 '바꾸기'를 사용 했습니까? http://stackoverflow.com/questions/1981349/regex-to-replace-multiple-spaces-with-a-single-space – Dror

답변

0

내가 Regex to replace multiple spaces with a single space에 제안 당신이 공백을 사용하여 대체 누락 생각의 복사본입니다.

+0

고마워 ....... 이것은 문제를 해결했습니다. 지금 –

+0

비슷한 코드를 사용했는데 sa.replace (/ (\ r \ n | \ n | \ r)/gm, "")를 사용한다고 생각했던 것을하지 않았습니다. 내가 게시 한 것과 같은 결과를 얻지 못했습니다. –

+0

\ s는 공백을 모두 제거합니다. 사용하려는 사이트에는 제거하려는 캐리지 리턴 및 줄 바꿈 (\ r \ n)뿐만 아니라 많은 공백이 있습니다. – Dror