From 6040461666b38ba0b46662021582ce2bd59c3f24 Mon Sep 17 00:00:00 2001 From: ttD4T Date: Tue, 13 Jun 2023 22:23:57 +0700 Subject: [PATCH] Change url web-scraped --- controllers/mainController.js | 215 ++++++++++++++++++---------------- 1 file changed, 111 insertions(+), 104 deletions(-) diff --git a/controllers/mainController.js b/controllers/mainController.js index 47163f8..265072d 100644 --- a/controllers/mainController.js +++ b/controllers/mainController.js @@ -1,128 +1,135 @@ const axios = require('axios'); const cheerio = require('cheerio'); -const url = 'https://xosoketqua.com/xsmb-xo-so-mien-bac.html'; +// const url = 'https://xosoketqua.com/xsmb-xo-so-mien-bac.html'; +const url = 'https://az24.vn/xsmb-sxmb-xo-so-mien-bac.html'; class MainController { getAll = async (req, res) => { const numbers = []; const names = []; - const times = []; - const objTimesNames = {}; - const obj = {}; + const results = {}; try { - await axios(url).then(response => { - const html = response.data; - const $ = cheerio.load(html); // sử dụng giống jQuery + axios(url, { + method: 'GET', + }) + .then((response) => { + const html = response.data; + const $ = cheerio.load(html); // sử dụng giống jQuery - $('table:nth-child(1)', html) - // .first() - .each(function () { - $(this) - .find('td > span.div-horizontal') - .each(function () { - numbers.push($(this).text()); - }); + $('table:nth-child(1)', html) + .first() + .each(function () { + $(this) + .find('td.v-giai > span ') + .each(function () { + numbers.push($(this).text()); + }); - // console.log(numbers); - $(this) - .find('tr > td:first-child') - .each(function (i) { - const name = $(this).text(); + $(this) + .find('tr > td:first-child') + .each(function (i) { + const name = $(this).text(); + console.log(name); - if (name !== 'Mã ĐB') { - // for (let i = 0; i < names.length; i++) { - if (names.includes(name)) { - return; - } else { - names.push(name.split('.').join('_')); + if (!name.includes('Mã ĐB')) { + // for (let i = 0; i < names.length; i++) { + if (names.includes(name)) { + return; + } else { + names.push(name.split('.').join('_')); + } + // } } - // } - } - }); - }); - if (numbers.length > 0) { - for (let i = 0; i < names.length; i++) { - objTimesNames[names[0]] = [numbers[0]]; - objTimesNames[names[1]] = [numbers[1]]; - objTimesNames[names[2]] = [numbers[2], numbers[3]]; - objTimesNames[names[3]] = [ - numbers[4], - numbers[5], - numbers[6], - numbers[7], - numbers[8], - numbers[9], - ]; - objTimesNames[names[4]] = [ - numbers[10], - numbers[11], - numbers[12], - numbers[13], - ]; - objTimesNames[names[5]] = [ - numbers[14], - numbers[15], - numbers[16], - numbers[17], - numbers[18], - numbers[19], - ]; - objTimesNames[names[6]] = [ - numbers[20], - numbers[21], - numbers[22], - ]; - objTimesNames[names[7]] = [ - numbers[23], - numbers[24], - numbers[25], - numbers[26], - ]; + }); + }); + numbers.splice(0, 1); // xóa phần tử đầu tiên + if (numbers.length > 0) { + for (let i = 0; i < names.length; i++) { + results[names[0]] = [numbers[0]]; + results[names[1]] = [numbers[1]]; + results[names[2]] = [numbers[2], numbers[3]]; + results[names[3]] = [ + numbers[4], + numbers[5], + numbers[6], + numbers[7], + numbers[8], + numbers[9], + ]; + results[names[4]] = [ + numbers[10], + numbers[11], + numbers[12], + numbers[13], + ]; + results[names[5]] = [ + numbers[14], + numbers[15], + numbers[16], + numbers[17], + numbers[18], + numbers[19], + ]; + results[names[6]] = [ + numbers[20], + numbers[21], + numbers[22], + ]; + results[names[7]] = [ + numbers[23], + numbers[24], + numbers[25], + numbers[26], + ]; + } } - } - // $('.list-link', html) - // .find('h2 > a:last-child') - // .each(function () { - // const time = $(this).prop('innerHTML').split(' ')[1]; + // $('.list-link', html) + // .find('h2 > a:last-child') + // .each(function () { + // const time = $(this).prop('innerHTML').split(' ')[1]; - // times.push(time); - // console.log(time); - // }); + // times.push(time); + // console.log(time); + // }); - // if (times.length > 0) { - // times.forEach(time => { - // for (let i = 0; i < names.length; i++) { - // objTimesNames[time] = [...names]; - // } - // }); - // } - const nowDay = new Date(); - const calendar = - nowDay.getDate() + - '/' + - (nowDay.getMonth() + 1 < 10 - ? '0' + (nowDay.getMonth() + 1) - : nowDay.getMonth() + 1) + - '/' + - nowDay.getFullYear(); - // console.log(nowDay.getHours() + ':' + nowDay.getMinutes()); - // console.log(objTimesNames); + // if (times.length > 0) { + // times.forEach(time => { + // for (let i = 0; i < names.length; i++) { + // results[time] = [...names]; + // } + // }); + // } + const nowDay = new Date(); + const calendar = + nowDay.getDate() + + '/' + + (nowDay.getMonth() + 1 < 10 + ? '0' + (nowDay.getMonth() + 1) + : nowDay.getMonth() + 1) + + '/' + + nowDay.getFullYear(); + // console.log(nowDay.getHours() + ':' + nowDay.getMinutes()); + // console.log(results); - const date = $('.class-title-list-link', html) - .first() - .find('a:last-child') - .text() - .split(' ')[1]; + const date = $('.class-title-list-link', html) + .first() + .find('a:last-child') + .text() + .split(' ')[1]; - res.status(200).json({ - countNumbers: numbers.length, - time: date, - objTimesNames, + res.status(200).json({ + countNumbers: numbers.length, + time: date, + results, + }); + }) + .catch((err) => { + console.log(err); + return res.status(500).json({ msg: err }); }); - }); } catch (e) { res.status(500).json({ msg: e }); }