2017-08-08 1 views
0

Je suis en train d'écrire un petit code de grattage web. Initialement, je suis allé pour NodeJS + Request + Cheerio pour gratter le site Web, mais plus tard, j'ai réalisé que Cheerio fonctionne uniquement pour la page Web statique pas pour ceux qui chargent des objets DOM en utilisant JS.scraperjs: Le code pour le grattage Web ne fonctionne pas

Alors je suis allé pour ScraperJS car il a le Static_Dynamic ContentScraper. J'ai mis en place toutes les dépendances comme indiqué ici: https://github.com/ruipgil/scraperjs

Mais mon code ne fonctionne toujours pas, c'est l'exemple de code donné sur leur dépôt github. Plate-forme: Windows 7, en cours d'exécution par CMD: noeud file_name.js

code:

var scraperjs = require('scraperjs'); 
    console.log("a2"); 
scraperjs.DynamicScraper.create('https://news.ycombinator.com/') 
    .scrape(function($) { 
     return $(".title a").map(function() { 
      return $(this).text(); 
     }).get(); 
    }) 
    .then(function(news) { 
     console.log(news); 
    }) 
+0

Comment ça ne marche pas? Quelle est l'erreur renvoyée? – Veve

+0

@Veve ne renvoie aucune erreur. Je l'exécute en utilisant le noeud hello.js et il s'exécute simplement sans rien imprimer et se termine. Je ne suis pas capable de déboguer ce qui se passe derrière les scènes. C'est le même code que celui donné dans le compte ScraperJS Github en tant que tutoriel de mise en route – ami27

+0

Il ne sort même pas "a2"? – Veve

Répondre

0

Selon this issue, il vient de PhantomJS, qui doit être déclassé afin de rendre le travail DynamicScraper.

Vous devez rétrograder phantomJS vers la version 1.9.8, ou utiliser la version 4.8 de NodeJS.