Web Scrape Meteor Pages

mjk*_*fer 3 node.js web-scraping meteor

我正在尝试编写一个擦除流星网页的应用程序.这是相当困难的,因为流星网页最初完全呈现为Javascript.有没有办法用某种刮刀渲染页面?

如果有帮助的话,可能会用节点来做.

谢谢

Aks*_*hat 5

您可以使用phantomjs来呈现网页.这是一个专门为流星网页设计的示例(来自spiderable),用于捕获HTML:

var fs = require('fs');
var child_process = require('child_process');

console.log('Loading a web page');

var page = require('webpage').create();

page.open("http://localhost:3000", function(status) {

});

var i = 0;

setInterval(function() {
     var ready = page.evaluate(function () {
          if (typeof Meteor !== 'undefined' 
               && typeof(Meteor.status) !== 'undefined' 
               && Meteor.status().connected) {
               Deps.flush();
               return DDP._allSubscriptionsReady();
          }
          return false;
     });

     console.log("Ready", ready);

     if (ready) {
          var out = page.content;
          console.log(out);
          phantom.exit();
     }
}, 100);
Run Code Online (Sandbox Code Playgroud)

这是这种方式,但你可以包装输出并使用require('child_process').exec和捕获它stdin.

您可以运行代码,phantomjs script.js它会返回流星页面的HTML.