Ich versuche eine Website für einige Inhalte zu verschrotten, es funktioniert alles gut, aber dann ist der verschrottete Text für mich nur in der Konsole verfügbar, aber ich möchte diese verschrotteten Daten in meinem Browser ausdrucken. Ich denke, ich mache etwas falsch mit dem Umgang mit Rückrufen. Kann mir bitte jemand helfen?nodejs Web Verschrottung und Rückruf Probleme
Mein Code ist unten:
app.get('/test', function(req, res) {
//All the web scraping magic will happen here
var url = 'https://www.mywebsite.com/path/to/abc';
var allText;
var getTheText = function() {
request(url, function getText(error, response, html){
// First we'll check to make sure no errors occurred when making the request
if(!error){
// Next, we'll utilize the cheerio library on the returned html which will essentially give us jQuery functionality
var $ = cheerio.load(html);
// Finally, we'll define the variables we're going to capture
var allText = $('body').children().find('p').text()
console.log('allText');
console.log(allText);
return allText;
}
else {
}
//return result;
});
console.log(allText);
}
getTheText();
console.log('gettheText is ' + getTheText());
res.send(allText);
})
Nur ein Tipp, Verarbeitung von cheerio wile Verarbeitung Anfrage nicht verarbeiten. Schieben Sie es mit redis oder kue in den Hintergrundjob. Sobald Sie mit dem Scraping fertig sind, drücken Sie die Ergebnisse auf websocket oder senden Sie ein Ereignis über ws, um die Ergebnisse zu holen – georoot