UNPKG

egypt-banks-scraper

Version:
53 lines (45 loc) 1.32 kB
/* eslint class-methods-use-this: ["error", { "exceptMethods": ["scraper"] }] */ import cheerio from 'cheerio'; import Bank from './Bank'; import { banksNames } from './banks_names'; export default class EDBE extends Bank { constructor() { const url = 'http://personal.ebebank.com/market-updates'; const selector = '.display-flex div'; super(banksNames.EDBE, url, selector); } /** * Scrape rates from html * @param {Object} html html of bank web page to scrape */ scraper(html) { const $ = cheerio.load(html); const tableRows = $('.display-flex div'); const currencyList = $(tableRows[0]).children(); const buyRateList = $(tableRows[1]) .children() .eq(1) .children() .eq(0) .children(); const sellRateList = $(tableRows[1]) .children() .eq(1) .children() .eq(1) .children(); const rates = []; buyRateList.each((index) => { if (index === 0) return; const currencyCode = currencyList.eq(index + 1).text().trim(); const buyRate = buyRateList.eq(index).text().trim(); const sellRate = sellRateList.eq(index).text().trim(); rates.push({ code: currencyCode, buy: Number(buyRate), sell: Number(sellRate), }); }); return rates; } }