Skip to content

lester-liam/currency-rates-api-scraping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Currency-API-Scraping

A webscraper that scrapes Malaysia eRemit Companies (Wise, Instaremit, MoneyMatch, SunwayMoney) via APIs and stores them in a comma-separated-value (.csv) file.

Some applications for webscraping rates is storing them for future rates predictions and machine learning applications/projects.

Disclaimer:

This repository is solely for learning purposes on web/api scraping.
- Please respect a website's terms or robots.txt on webscraping.
Ethics in Web Scraping | Towards Data Science

Prerequisites

Ensure you have installed the following packages requests and pandas.

pip install requests
pip install pandas

Clone the Repository

git clone https://github.com/lester-liam/weather-forecast-email.git

Update Configuration File


In `config.csv`, ensure you added the currencies / rates you want.

Columns Info:

# Remittance Site to Scrape
provider:list = ["Wise", "Instarem", "MoneyMatch", "SunwayMoney"]

country:str     # Country Name (non-standard for output)
currency:str    # Currency Code as ISO 4217 Format
amount:int      # Amount to Convert (integer only)
param1:str      # Additional Parameter for Sunway Money

For Sunway Money:
Input param1 as Currency Code ISO 4217 format + Country Code as ISO 3166 format.
Example: Singapore Dollar = SGD-SG

Running the Code

The code should run out of the box. However you can also configure the file output locations.

Final CSV Output and Configuration File

# Stores the Currency/Countries to Query
configFilename:str = "config.csv" 
# Final Output Filename
output_filename:str = f"rates_history/rates_history_{datetime.now().strftime("%d%b%y-%H%M")}.csv"

Updating File Outputs

main.py: Line 30:

# Read CSV Outputs
wise_rates = pd.read_csv("./output/wise.csv", ...)
instarem = pd.read_csv("./output/instarem.csv", ...)
sunway_money = pd.read_csv("./output/sunwaymoney.csv", ...)
money_match = pd.read_csv("./output/moneymatch.csv", ...)

rates_funcs.py: Line 323

# Reset CSV Files:
filenames:list = ["./output/instarem.csv", "./output/moneymatch.csv", "./output/wise.csv", "./output/sunwaymoney.csv"]
for file in filenames:
    with open(file, 'w', newline="") as output:
        output.write('')

rates_funcs.py: Line 332:

# Define processes for each provider
processes = [
    Process(..., "./output/instarem.csv")),
    Process(..., "./output/sunwaymoney.csv")),
    Process(..., "./output/moneymatch.csv"))
]

Credits / References

Remittance Websites used in the code.
MoneyMatch
Instarem
Wise
Sunway Money

Licenses

Unlicense

About

Scrapes Currency Rates from Various Remittance Sites

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages