Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save kiyomasanaki/c397c76342f0b9e2b2a6e59fd68dd191 to your computer and use it in GitHub Desktop.

Select an option

Save kiyomasanaki/c397c76342f0b9e2b2a6e59fd68dd191 to your computer and use it in GitHub Desktop.
Boursobank Bulk Statement Downloader (boursobank.com)
# 🏦 Boursobank Bulk Statement Downloader
> 📥 Bulk download all your PDF bank statements from Boursobank with a single script.
## ✨ Features
- Downloads all available statements automatically
- Configurable delay between downloads to avoid rate limiting
- Multiple CSS selectors for better compatibility
- Clear console feedback with progress tracking
## 🚀 Quick Start
1. **Log in** to your [Boursobank](https://www.boursobank.com) account
2. **Navigate** to your statements page (`Documents > Relevés`)
3. **Open** browser DevTools (`F12` or `Cmd+Option+I` on Mac)
4. **Switch** to the **Console** tab
5. **Paste** the content of `boursobank-bulk-statement-downloader.js`
6. **Press** `Enter` and watch the magic happen ✨
7. **Allow** multiple downloads if prompted by your browser
## ⚙️ Configuration
| Parameter | Default | Description |
|-----------|---------|-------------|
| `DOWNLOAD_DELAY_MS` | `1500` | Delay (in ms) between each download |
## ⚠️ Notes
- Make sure pop-ups and multiple downloads are allowed in your browser settings
- Tested on Chrome and Firefox
- The script will notify you in the console if no download links are found
## 📄 License
MIT - Feel free to use and modify as needed.
## 🤝 Contributing
Found a bug or want to add support for another bank? Feel free to fork and submit a PR!
---
*Made with ❤️ and JavaScript*
/**
* Bulk PDF Statement Downloader for Boursobank
*
* Usage: Open your bank statements page, then run this script in the browser console (F12)
*
* @author keyamasabaya
* @license MIT
*/
(async function bulkDownloadStatements() {
const DOWNLOAD_DELAY_MS = 1500;
const SELECTORS = [
'a.c-link--download-pdf',
'td.documents__action a[href*="statements-document"]'
];
// Find download links using multiple selectors
const findDownloadLinks = () => {
for (const selector of SELECTORS) {
const links = document.querySelectorAll(selector);
if (links.length > 0) return links;
}
return [];
};
const downloadLinks = findDownloadLinks();
if (downloadLinks.length === 0) {
console.error('❌ No download links found. Check if you are on the correct page.');
return;
}
console.log(`📄 Found ${downloadLinks.length} statement(s) to download`);
for (let i = 0; i < downloadLinks.length; i++) {
const link = downloadLinks[i];
const title = link.title || link.getAttribute('href')?.split('/').pop() || `Document ${i + 1}`;
console.log(`⬇️ Downloading ${i + 1}/${downloadLinks.length}: ${title}`);
link.click();
if (i < downloadLinks.length - 1) {
await new Promise(resolve => setTimeout(resolve, DOWNLOAD_DELAY_MS));
}
}
console.log('✅ All downloads initiated!');
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment