Features
- Scrapes financial account information from multiple websites:
- Hargreaves Lansdown
- Nutmeg
- Shareworks
- StandardLife
- Inserts scraped data into Google Sheets and YNAB accounts
- Automated updates with Python Selenium scrapers
- Utilizes gspread, selenium, and webdriver_manager libraries
- Includes GitHub Actions for Dependabot, MegaLinter, and CodeQL
Getting Started
These instructions will help you set up and run the project on your local machine.
Prerequisites
- Python 3.6 or higher
- Pip (Python package installer)
Configuration
Create a secrets.json
file in the root directory of the project with your credentials and settings for the financial websites and Google Sheets. Use the following format, replacing the example values with your actual credentials:
Note: Make sure not to commit the secrets.json file to your repository, as it contains sensitive information. Add it to your .gitignore file.
Installation
- Clone the repository:
- Change to the project directory:
- Install the required packages:
-
Update the
secrets.json
file as shown above with your credentials and settings for the financial websites, Google Sheets, and YNAB accounts. -
Run the
Main.py
script to start the scraping process:
Project Structure
The project is organized into the following folders and files:
Main.py
: Entrypoint for the program, initiates the scraping process.scrapers/
: Contains Python Selenium scrapers for each supported financial website.utils/
: Contains the code to grab the secrets from thesecrets.json
.connectors/
: Contains the API code to interact with Google Sheets and YNAB.middleware/
: Contains the code that translates the scraper information into commands to insert the data into the API code in Google Sheets.requirements.txt
: Lists the Python libraries required for the project.
License
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.