Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jbms/finance-dl/llms.txt

Use this file to discover all available pages before exploring further.

The finance_dl.paypal scraper uses selenium and chromedriver to log into paypal.com and download your full activity history. Each transaction is saved as both a JSON file (containing the raw data returned by the PayPal server) and an HTML file. For invoice-type transactions, a PDF and a separate invoice JSON file are saved instead. This page covers all configuration parameters, the per-transaction output file naming scheme, a ready-to-use config example, and how to invoke the scraper from the interactive shell.

Configuration Parameters

credentials
dict
required
A dictionary containing your PayPal login credentials.
output_directory
string
required
Path on the local filesystem where output files will be written. The directory will be created automatically if it does not already exist.
profile_dir
string
Path to a persistent Chrome browser profile directory. This must be a path used exclusively for this scraper configuration — do not point it at your regular browser profile. When omitted, a fresh temporary profile is created on every run.

Output Format

All files are written directly into output_directory. The file naming depends on the transaction type:
Transaction typeFiles written
Standard transaction<id>.json — raw JSON from the PayPal server
Standard transaction<id>.html — HTML representation of the transaction
Invoice<id>.pdf — the invoice PDF
Invoice<id>.invoice.json — invoice metadata as JSON
<id> is the unique PayPal transaction identifier. Already-downloaded transactions are skipped on subsequent runs.

Config Example

def CONFIG_paypal():
    return dict(
        module='finance_dl.paypal',
        credentials={
            'username': 'XXXXXX',
            'password': 'XXXXXX',
        },
        output_directory=os.path.join(data_dir, 'paypal'),
    )

Interactive Shell

From the finance-dl interactive shell, start the scraper by running:
self.run()

Build docs developers (and LLMs) love