Как можно разобрать HTML-сервер с Meteor?

Я хочу, чтобы очистить ссылки из HTML-страницы, которую я получаю с помощью метода Meteor.http. Было бы идеально использовать jQuery на стороне сервера, но я не думаю, что это работает.

Ответы

Ответ 1

Рассмотрите возможность использования cheerio его как jQuery, но больше для скребков. Я попытался ответить на это раньше, поэтому надеюсь, что на этот раз я сделаю лучшую работу.

его модуль npm, поэтому сначала выполните его установку (внутри вашего проекта dir) с помощью терминала:

meteor add http
cd .meteor
npm install cheerio

Итак, теперь код:

Вам нужно использовать это на своем сервере js/или эквивалентном

var cheerio = __meteor_bootstrap__.require('cheerio');
Meteor.methods({
last_action: function() {
       $ = cheerio.load(Meteor.http.get("https://github.com/meteor/meteor").content);
       return $('.commit-title').text().trim()      
    }
})

Если вы запустите это со стороны клиента js, вы увидите последнее действие в ветке github meteors:

Meteor.call("last_action",function(err,result){ console.log(result) } );

Я получил это на сегодняшний день /feb 23rd

enter image description here

который так же, как и на github.com/meteor/meteor

enter image description here

Ответ 2

Используйте cheerio, как предлагает Акшат, но я бы порекомендовал другой способ использовать его, на данный момент, для Meteor 0.8.0.

Сначала установите npm для Meteor:

$ mrt add npm

Затем измените packages.json на (конечно, вы можете иметь другую версию cheerio или других пакетов node):

{
  "cheerio": "0.15.0"
}

В server.js (или любой другой файл, на стороне сервера) запустите:

var cheerio =  Meteor.require('cheerio');

Использование cheerio так, как вам нравится.

После запуска $ meteor он автоматически установит cheerio.