Logs into an Amazon.com account and downloads invoices as PDF
Project description
Amazon Invoice Downloader
Table of Contents
What it does
This program amazon-invoice-downloader.py
is a utility script that uses the Playwright library to spin up a Chromium instance and automate the process of downloading invoices for Amazon purchases within a specified date range. The script logs into Amazon using the provided email and password, navigates to the "Returns & Orders" section, and retrieves invoices for the specified year or date range.
The user can provide their Amazon login credentials either through command line arguments (--email= --password=) or as environment variables ($AMAZON_EMAIL and $AMAZON_PASSWORD).
The script accepts the date range either as a specific year (--year=) or as a date range (--date-range=). If no date range is provided, the script defaults to the current year.
Once the invoices are retrieved, they are saved as PDF files in a local "downloads" directory. The filename of each PDF is formatted as YYYYMMDD_<total>_amazon_<orderid>.pdf
, where YYYYMMDD is the date of the order, total is the total amount of the order (with dollar signs and commas removed), and orderid is the unique Amazon order ID.
The program has a built-in "human latency" function, sleep(), to mimic human behavior by introducing random pauses between certain actions. This can help prevent the script from being detected and blocked as a bot by Amazon.
The script will skip downloading a file if it already exists in the ./downloads
directory.
Installation
pip install amazon-invoice-downloader
playwright install
Usage
When running this program, Amazon may detect you are automation and introduce CAPTCHA's or make you login again. Just do so, and once successfully logged in, the script will continue.
$ amazon-invoice-downloader -h
Amazon Invoice Downloader
Usage:
amazon-invoice-downloader.py \
[--email=<email> --password=<password>] \
[--year=<YYYY> | --date-range=<YYYYMMDD-YYYYMMDD>]
amazon-invoice-downloader.py (-h | --help)
Login Options:
--email=<email> Amazon login email [default: $AMAZON_EMAIL].
--password=<password> Amazon login password [default: $AMAZON_PASSWORD].
Date Range Options:
--date-range=<YYYYMMDD-YYYYMMDD> Start and end date range
--year=<YYYY> Year, formatted as YYYY [default: <CUR_YEAR>].
Options:
-h --help Show this screen.
Examples:
amazon-invoice-downloader.py --year=2022 # This uses env vars $AMAZON_EMAIL and $AMAZON_PASSWORD
amazon-invoice-downloader.py --date-range=20220101-20221231
amazon-invoice-downloader.py --email=user@example.com --password=secret # Defaults to current year
amazon-invoice-downloader.py --email=user@example.com --password=secret --year=2022
amazon-invoice-downloader.py --email=user@example.com --password=secret --date-range=20220101-20221231
License
amazon-invoice-downloader
is distributed under the terms of the MIT license.
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 amazon_invoice_downloader-0.4.0.tar.gz
.
File metadata
- Download URL: amazon_invoice_downloader-0.4.0.tar.gz
- Upload date:
- Size: 10.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c536f511ca44b51c1f41e68a105618e13c44afe4edbf277c0878a66583c668d |
|
MD5 | 31dca01e0c4a436384a95d7b678d6b5a |
|
BLAKE2b-256 | b51216ba49ef812c763429df4d0b6dcea4a62fc1bba3c7ca025e516fa053363d |
File details
Details for the file amazon_invoice_downloader-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: amazon_invoice_downloader-0.4.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdd5bdb372709eaa49d4e89cd489a7cce8fbdd25a2d2091cf29e21cd258c3f31 |
|
MD5 | 8d13b81831d82d86242be0cb5eaa1869 |
|
BLAKE2b-256 | ac3d42b13e734ddba89d2557a314067ecbde425408b53aa8ab4010031e60508a |