Соскребенные данные в узле не отображаются на странице HTML - PullRequest
0 голосов
/ 12 июня 2018

Проект: вычеркните количество собранных средств по 4 ссылкам краудфандинга и покажите все эти суммы на одной странице в режиме реального времени для получения результатов в реальном времени.

Я создал приложение для узла, используя экспресс иуспешно удалил данные с нескольких сайтов (из которых результаты отображаются в консоли моего терминала), но теперь я хочу, чтобы эти данные отображались в определенной части HTML моей домашней страницы под id = "".

IЯ не хочу сохранять в базе данных, потому что я хочу, чтобы суммы, представленные на HTML-странице, были точным числом, которое заполняется после загрузки и удаления страницы.

Вот некоторый код (с моего сервера.JS-файл):

request('https://www.blah.com', function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    var unitedData = $('.cta-title').children().first().text();
      console.log("Manchester: " + unitedData);
  } $('#raised-united').append(unitedData);
});

X4 (по одному на каждую ссылку), все они содержатся в теге "function scrape () {}".Этот код выполняет это в моем терминале: терминал console.log , поэтому я знаю, что он работает.

Но HTML-код, который у меня есть (index.html):

            <div class="col" id="numbers">
                <h2 id="raised-united"></h2>
                <h3 id="outOf"> of $5,000</h3>
            </div>

без изменений ...

Вот мой файл server.js:

//dependencies
var express = require("express");
var cheerio = require("cheerio");
var request = require("request");
var bodyParser = require("body-parser");
//setting port
var PORT = process.env.PORT || 3000;
//start express
var app = express();
var router = express.Router();
app.use(express.static("public"));
app.use(router);

function scrape(){
//scrapes Gooners crowdrise link
request('https://www.crowdrise.com/o/en/campaign/austin-goonersupperninety', function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    var goonersData = $('.cta-title').children().first().text();
      $('#raised-gooners').append(goonersData);
      console.log("Gooners: " +goonersData);
  }
});

//scrapes Austin Reds crowdrise link
request('https://www.crowdrise.com/o/en/campaign/austin-reds-and-upper-ninety', function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    var redsData = $('.cta-title').children().first().text();
      $('#raised-reds').append(redsData);
      console.log("Reds: " + redsData);
  }
});

//scrapes Austin Spurs crowdrise link
request('https://www.crowdrise.com/o/en/campaign/austin-spurs-and-upper-ninety', function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    var spursData = $('.cta-title').children().first().text();
      $('#raised-spurs').append(spursData);
      console.log("Spurs: " + spursData);

  }
});

//scrapes Austin Manchester crowdrise link
request('https://www.crowdrise.com/o/en/campaign/austinmanch esterunitedupperninety', function (error, response, html) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(html);
    var unitedData = $('.cta-title').children().first().text();
      console.log("Manchester: " + unitedData);
  } $('#raised-united').append(unitedData);
});
};


app.listen(PORT, function() {
 console.log("App running on port" + PORT);
});

//directs server to homepage
module.exports = function(router){
router.get("/", function(req, res){
    res.render("public/index.html");
});
}

scrape();

1 Ответ

0 голосов
/ 12 июня 2018

Вам необходимо использовать функциональность шаблонов Express вместе с механизмом шаблонов, таким как Pug, EJS или Handlebars, чтобы динамически отображать HTML-шаблон для отображения ваших данных.

...