Code to backup my data from Goodreads.
Daily cronjob to download CSV of books I've read.
Also grab book recommendations, possibly using Python Playwright.
Goodreads returns an empty HTML page to headless browsers it identifies as automated (navigator.webdriver=true, AutomationControlled feature). This caused the Export Library button to never be found. - Launch Chromium with --disable-blink-features=AutomationControlled - Set a realistic user agent and viewport on the browser context - Strip navigator.webdriver via an init script - Guard the logged_in check so a blank page isn't mistaken for a session - Wait for networkidle before querying the export button, and use wait_for(visible) instead of is_visible() to tolerate JS render delay - Add CSS class fallback (button.js-LibraryExport) if role lookup fails - Add AGENTS.md documenting the bot detection pattern and export flow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| templates | ||
| .gitignore | ||
| AGENTS.md | ||
| backup.py | ||
| get.py | ||
| LICENSE | ||
| parse.py | ||
| README.md | ||
goodreads-backup
Code to backup my data from Goodreads.
Daily cronjob to download CSV of books I've read.
Also grab book recommendations, possibly using Python Playwright.