2017-06-20 5 views
0

Ich Abkratzen der Webseite https://www.g2a.com/rising-storm-2-vietnam-steam-cd-key-global.htmlFrage, die sich bei der Web-Seite eine Tabelle mit Knoten Schaben js

Ich brauche den Titel aus den Tabellendaten zu erhalten.

var express = require('express'); 
var fs = require('fs'); 
var request = require('request'); 
var cheerio = require('cheerio'); 
var app = express(); 

app.get('/scrape', function(req, res) { 

    url = 'https://www.g2a.com/rising-storm-2-vietnam-steam-cd-key-global.html'; 

    request(url, function(error, response, body) { 
     if (!error) { 
      var $ = cheerio.load(body); 
      var arr = []; 
      var title = $('.mp-user-rating tr td').each(function(element) { 
       var tableData = $(element).find('.mp-rating-popup'); 
       arr.push({ 'title': tableData.text() }); 
      }); 
      console.log(arr); 
     } 
     res.send(arr); 

    }); 
}) 
app.listen('8081'); 

console.log('Magic happens on port 8081'); 

exports = module.exports = app; 

Hier arr ist immer leer.

enter image description here

Das Bild zeigt die Struktur der Tabelle

Jede Hilfe würde geschätzt.

Antwort

0

cheerio führt kein Javascript aus, sondern analysiert lediglich den HTML-Code. Wenn Sie JavaScript zum Ausführen benötigen (z. B. wenn Inhalt später über AJAX geladen wird oder wenn die Anwendung eine vom Frontend erstellte Einzelseitenanwendung ist), müssen Sie phantomjs verwenden oder eine Lösung mit electron hacken oder die neue headless chrome with an abstraction verwenden. Eine Alternative wäre jsdom zu verwenden. Jsdom ist großartig, wenn Sie die Kontrolle über die Seite haben, die Sie crawlen möchten (oder serverseitig rendern), aber seien Sie sich bewusst, dass Site-Fehler zum Absturz Ihres Node-Prozesses führen.

Verwandte Themen