donfanning
8/15/2018 - 1:40 PM

motor js

motor js

var page = require('webpage').create();
var system = require('system');
var url = system.args[1];

page.open(url, function(status) {
  var elements = page.evaluate(function() {
    var nodes = {};
    [].forEach.call(document.querySelectorAll('*'), function(element) {
      var computedStyle = getComputedStyle(element);

      var nodeStyle = {};
      for(var i = 0; i < computedStyle.length; i++){
        var node = computedStyle[i];
        nodeStyle[node] = computedStyle.getPropertyValue(node);
      }

      if (nodes[element.nodeName]) {
        nodes[element.nodeName].push(nodeStyle);
      } else {
        nodes[element.nodeName] = [nodeStyle];
      }
    });
    return nodes;
  });

  console.log(JSON.stringify(elements));
  phantom.exit();
});
var express = require('express');

var router = express.Router();

router.get('/crawler', function(req, res, next) {
  var elements,
      data,
      util  = require('util'),
      spawn = require('child_process').spawn,
      ls    = spawn('phantomjs', ['motor.js', 'http://www.medium.com']);

  ls.stderr.on('data', function (data) {
    console.log('stderr: ' + data);
  });

  ls.on('exit', function (code) {
    console.log('child process exited with code ' + code);
  });

  var data = ls.stdout.pipe(res);
});

module.exports = router;