Node.js 使用Meteor.js进行刮削

Node.js 使用Meteor.js进行刮削,node.js,web-scraping,meteor,cheerio,Node.js,Web Scraping,Meteor,Cheerio,我可以用meteor.js刮擦吗?刚刚发现的cheerio与request结合使用效果极佳。我可以用流星,或有类似的东西吗 你有一个有效的例子吗?当然有!很难想象流星做不了什么!首先,您需要一些东西来处理远程http请求。在终端的meteor目录中运行meteor add http以添加meteor.http包,也可以npm install cheerio(查看一下,以查看安装外部npm模块的确切位置 下面是一个可能对您有所帮助的示例,它可以帮助您解决问题 服务器js require = __m

我可以用meteor.js刮擦吗?刚刚发现的
cheerio
request
结合使用效果极佳。我可以用流星,或有类似的东西吗


你有一个有效的例子吗?

当然有!很难想象流星做不了什么!首先,您需要一些东西来处理远程http请求。在终端的meteor目录中运行
meteor add http
以添加
meteor.http
包,也可以
npm install cheerio
(查看一下,以查看安装外部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。你可以看看它,它非常有用。你还可以做截图、自动测试等。

现在你应该使用Meteohacks npm包 并要求:

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

为我工作:)

以下代码用于刮取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;
      },

    })

  });
}

类似,如果不是重复的话:这个问题启发我录制了一个相关的视频:谢谢!对于模拟JS进行刮取,您有什么建议吗?您的示例看起来只适用于HTML@FullStack如果您需要进行更高级的刮片,请查看使用phantomjs。