2016-10-11 2 views
0

Ich habe ein Problem, das jenseits von mir zu lösen ist. Ich bin Web-Scraping eine Webseite spezifischer -its <tr> in NodeJs, und bin in der Lage, den Inhalt zu greifen, aber aus irgendeinem Grund ist das Format nicht ideal. Es hat eine Reihe von Leerzeichen, wenn es in der console.log() angezeigt wird. Ich habe versucht, .trim() und .replace(), aber es hat nicht wirklich die Leerzeichen entfernt. Ich vermute, es liegt daran, dass die Daten im Div-Format und Tabellenformat geschachtelt wurde. Ich weiß nicht, wie ich damit umgehen soll.entfernen Sie die Leerzeichen von Web-Scraping <tr> Tags Nodejs

Auch ich habe versucht, es als Array zu speichern, aber die gesamte Ausgabe ist nicht aufgeteilt, es ist nur ein Datenblock. Wenn es bereits eine Antwort auf diese Frage gibt, geben Sie bitte den Link an und ignorieren Sie meinen Beitrag.

Hier ist eine Kopie des Codes

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

können Sie bitte Beispielseite hinzufügen, auf der Sie dies versuchen? – Dror

+0

Es ist in der Code (URL) –

+0

Haben Sie 'ersetzen' mit \ s verwendet, um Leerzeichen zu entfernen? siehe http://stackoverflow.com/questions/1981349/regex-to-replace-multiple-spaces-with-a-single-space – Dror

Antwort

0

Ich glaube, Sie ersetzen fehlen Leerzeichen, wie in Regex to replace multiple spaces with a single space vorgeschlagen:

string = string.replace(/\s\s+/g, ' '); 

sample für eine abgespeckte Version Siehe mit jQuery.

+0

Danke ....... Das hat das Problem gelöst. Jetzt –

+0

Ich benutzte einen ähnlichen Code und es tat nicht, was ich dachte, es sollte sa.replace (/ (\ r \ n | \ n | \ r)/gm, "") tun. Ich habe nicht das gleiche Ergebnis erhalten wie das, das du gepostet hast. –

+0

\ s löscht alle Leerzeichen. Die Website, die Sie verwenden, hat viele Leerzeichen, nicht nur Zeilenumbrüche und Zeilenvorschub (\ r \ n), die Sie anscheinend entfernen möchten. – Dror

Verwandte Themen