Проект: вычеркните количество собранных средств по 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();