egypt-banks-scraper
Version:
Scrape exchange rates from Egypt banks
53 lines (45 loc) • 1.32 kB
JavaScript
/* 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;
}
}