Bank of America personal financial web scraper
Project description
BankofAmerica-Web-Scraper
Selenium web scraper used to pull personal financial data from bankofamerica.com
About
This web scraper will pull account balances and all transactions from credit and checking accounts. This is meant to be used with a node.js server which will re-categorize and insert into a google sheet.
Installing
To install dependencies, run
pip install python-dotenv
pip install knack
pip install boas
Usage
To run the program in a multi-threaded way, using account details from accounts.json
run
boas parse run --threaded=yes --file=accounts.json
Environment variables
This project require a .env
file or environment variables. The only value required is the sheet api endpoint of the
node.js server.
Here is an example file:
SHEET_API=
Account File
The account credentials are stored in a json file. If you would like to login even with the security v2 security, you can provide the security answers in the file.
[{
"name": "",
"username": "",
"password": "",
"security_questions": {
"What is the name of your first employer?": "",
"What is the street you grew up on": "",
"What is the name of your best friend": ""
}
}]
How it works
This service first logs in, and then start to collect the account balances and overview from the my accounts page. Next, it will visit all checking and credit cards and start collecting the transaction info. This is the following information that the program collects:
merchant_name
category
date
description
amount
Only the transactions from the current month are collected. Currently, the savings scraper isn't implemented. For my use
case I did not have many important transactions in savings. The amounts are still collected in the overview and displayed
in the sheet. If you would like to implement savings, just create another entry in page.py
and locators in locator.py
.
To learn more about the page object design pattern, look at the selenium docs
Important Notes / Future work
I have not found a way to run selenium in headless mode. It seems bank of america detects this and asks for a capcha, which block logging in. I have not explored what options chrome driver might have to mask the headless mode.
Development
Testing
There is a few tests located in the test directory. These will test basic login functionality, account summary recording, and a full functional test of the scraper. Please replace the empty strings with your account information to run these tests.
Here is an example run of a full functional test run:
python src/FullTests.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file boas-1.7.tar.gz
.
File metadata
- Download URL: boas-1.7.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d5cfddd95021cc51117ae1bbf2c4dda70d88bee6640aaad38b7a3fc725c157b |
|
MD5 | 01bc8cb9e0c03dd51d0b31c47532963e |
|
BLAKE2b-256 | a2f9d2e455bd1884a4c96bb0370043ea3857ff6cb04f39f61268a850ab707d1c |
File details
Details for the file boas-1.7-py3-none-any.whl
.
File metadata
- Download URL: boas-1.7-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 532856f21619b738f7ef65c2c7ecf6d9cc6fb9649e67b8d3551e5435ce04ed30 |
|
MD5 | 6d194835d06b5618a98e97a267e723c2 |
|
BLAKE2b-256 | ea42c128a46e3c8179532fdaad676e4153af0cf9c8566b539ecea80eaa27a526 |