与Meteor.js刮(Scraping with Meteor.js)

2019-08-16 21:09发布

我可以用meteor.js刮? 刚发现cheerio加之其出色的工作request 。 我可以使用这些用流星,或者是有什么相似?

你有一个工作的例子吗?

Answer 1:

当然! 它坚硬想象流星做不到! 首先,你需要一些东西来处理远程HTTP请求。 在终端运行您的流星目录meteor add http添加Meteor.http包,也npm install cheerio (看看如何安装NPM模块另一个SO问题 ,看看到底哪里安装外部NPM模块。

下面是可能会帮助你有点为例,它刮掉当前时间 。

服务器JS

require = __meteor_bootstrap__.require; //to use npm require must be exposed.
var cheerio = require('cheerio');

Meteor.methods({
    getTime: function () {
        result = Meteor.http.get("http://www.timeanddate.com/worldclock/city.html?n=136");
        $ = cheerio.load(result.content);
        CurrentTime = $('#ct').html();
        return CurrentTime;
    }
});

客户端脚本:

Meteor.call("getTime", function(error, result) {
    alert("The current time is " + result); 
});

我希望这是有帮助的。 之中与Cheerio也有其他节点框架如node.io



Answer 2:

下面的代码中使用这个项目来刮tweetstorm:

if (Meteor.isClient) {

  Meteor.call('getTweets', function (error, result) {
    if (error) {
      console.log("error", error);
    };

    Session.set("tweets", result);
  });

  Template.tweets.helpers({
    rant: function () {
      return Session.get("tweets");
    }
  });

}

服务器端

  if (Meteor.isServer) {
      Meteor.startup(function () {
        var cheerio = Meteor.npmRequire('cheerio');

    Meteor.methods({
      getTweets: function () {
        result = Meteor.http.get("https://twitter.com/Royal_Arse/status/538330380273979393");
        $ = cheerio.load(result.content);
        var body = $('#stream-items-id > li:nth-child(n) > div > div > p').text();
        return body;
      },

    })

  });
}


Answer 3:

你可以看一下第http://casperjs.org/这是非常有用的。 你也可以做截图,自动测试,等等...



Answer 4:

现在,你应该使用meteorhacks NPM包https://github.com/meteorhacks/npm ,并要求这一点:

var cheerio = Meteor.npmRequire('cherio');

为我工作:)



文章来源: Scraping with Meteor.js