Как очистить страницы с помощью Node.js

Я пытаюсь очистить веб-сайт, но не могу получить результаты для записи в файл HTML.

Я использовал cheerio в node.js, и мой код ниже.

var http = require('http');
var path = require('path');
var request = require('request');
var cheerio = require('cheerio');

http.createServer(function (req, res) {
    res.write('<html><head></head><body>');
        request('http://www.espn.com', function(err, res, html){
            var $ = cheerio.load(html);

            $('a.realStory').each(function(i, element) {
                var node = $(this);
                var text = node.text();
            res.write('<p>'+ text +'</p>');     
            });
        });

  res.end('</body></html>');
}).listen(1337);

Как я могу запустить этот файл, а затем перейти на мой локальный хост, чтобы просмотреть его?


person Stuart Conroy    schedule 24.07.2016    source источник
comment
Если вы когда-нибудь сталкивались с тем, что вам нужно интерполировать / выполнить JavaScript (одностраничное приложение), тогда что-то вроде github.com / joelgriffith / navalia, вероятно, подойдет лучше всего. Я подумываю о том, чтобы предложить интерфейс, похожий на чирио, для людей, у которых уже есть алгоритмы парсинга, написанные в node.   -  person browserless    schedule 03.07.2017


Ответы (1)


Элементарная реализация:

var express = require('express'),
    path = require('path'),
    request = require('request'),
    cheerio = require('cheerio'),
    app = express();
app.get('/', function (req, res) {
    request('http://www.espn.com', function (e, r, html) {
        var $ = cheerio.load(html);
        $('a.realStory').each(function (i, element) {
            var node = $(this);
            var text = node.text();
            res.write('<p>' + text + '</p>');
        });
        res.end();
    });
});
app.listen(process.env.PORT || 1337, function () {
    console.log("Server running..");
});
person Iceman    schedule 24.07.2016