This project is a Python-based PDF downloader and scraper built with Playwright.
It opens a website, collects relevant internal pages, extracts the main content, builds a cleaner printable HTML version, and exports each page as a PDF.
The goal is to create readable PDFs that are easier to save, review, and copy text from than a raw browser print.
- Opens pages with Playwright
- Collects internal links
- Visits each page automatically
- Extracts the main content area
- Cleans up exported content for better readability
- Exports one PDF per page
- Creates logs during execution
- Handles errors per page so the full run does not stop immediately
PdfDownloader/
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── logger_setup.py
│ ├── main.py
│ ├── models.py
│ ├── pdf_exporter.py
│ ├── scraper.py
│ └── utils.py
├── output/
├── logs/
├── requirements.txt
├── .gitignore
└── README.md
Before running the project, install:
- Python 3.11 or later
- Visual Studio Code
- VS Code Python extension
- Playwright for Python
Recommended:
- Pylance extension in VS Code
Open the project folder in Visual Studio Code.
Open the terminal in VS Code and run:
python -m venv .venvOn Windows PowerShell, activate it with:
.venv\Scripts\Activate.ps1If PowerShell blocks activation, run:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.venv\Scripts\Activate.ps1If you use Command Prompt instead:
.venv\Scripts\activateRun:
pip install -r requirements.txtThen install Playwright browsers:
playwright installFrom the project root, run:
python src/main.pyIf your system uses py instead of python, run:
py src/main.pyGenerated PDF files are saved in:
output/
Logs are saved in:
logs/run.log
Main settings are stored in:
src/config.py
This is where you typically adjust things such as:
- base URL
- selectors
- timeouts
- PDF settings
- content extraction behavior
This project is designed as a reusable PDF scraping/export tool.
It can be adapted for other websites, but some pages may require updates to:
- selectors
- link filtering
- content extraction rules
- login handling
- waiting logic
Make sure Python is installed and available in PATH.
Check with:
python --versionor:
py --versionMake sure you have installed dependencies and browsers:
pip install -r requirements.txt
playwright installRun:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy BypassThen activate the environment again.
Detta projekt är en PDF-nedladdare och scraper byggd i Python med Playwright.
Programmet öppnar en webbplats, samlar relevanta interna sidor, extraherar huvudinnehållet, bygger en renare utskriftsvänlig HTML-version och exporterar varje sida som PDF.
Målet är att skapa lättlästa PDF-filer som är enklare att spara, läsa och kopiera text från än en vanlig browser-utskrift.
- Öppnar sidor med Playwright
- Samlar interna länkar
- Besöker varje sida automatiskt
- Extraherar sidans huvudinnehåll
- Städar upp innehållet för bättre läsbarhet
- Exporterar en PDF per sida
- Skapar loggar under körning
- Hanterar fel per sida så att hela körningen inte avbryts direkt
PdfDownloader/
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── logger_setup.py
│ ├── main.py
│ ├── models.py
│ ├── pdf_exporter.py
│ ├── scraper.py
│ └── utils.py
├── output/
├── logs/
├── requirements.txt
├── .gitignore
└── README.md
Innan projektet körs behöver följande vara installerat:
- Python 3.11 eller senare
- Visual Studio Code
- Python-tillägget i VS Code
- Playwright för Python
Rekommenderas även:
- Pylance i VS Code
Öppna projektmappen i Visual Studio Code.
Öppna terminalen i VS Code och kör:
python -m venv .venvI Windows PowerShell aktiverar du den med:
.venv\Scripts\Activate.ps1Om PowerShell blockerar aktiveringen, kör:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.venv\Scripts\Activate.ps1Om du använder Command Prompt i stället:
.venv\Scripts\activateKör:
pip install -r requirements.txtInstallera sedan Playwrights browsers:
playwright installFrån projektroten, kör:
python src/main.pyOm din dator använder py i stället för python, kör:
py src/main.pySkapade PDF-filer sparas i:
output/
Loggar sparas i:
logs/run.log
De viktigaste inställningarna finns i:
src/config.py
Där justerar man normalt sådant som:
- start-URL
- selectors
- timeouts
- PDF-inställningar
- regler för innehållsextrahering
Projektet är byggt som ett återanvändbart verktyg för PDF-export och scraping.
Det går att anpassa till andra webbplatser, men vissa sidor kan kräva ändringar i:
- selectors
- filtrering av länkar
- regler för innehållsextrahering
- inloggningsflöde
- väntelogik
Kontrollera att Python är installerat och finns i PATH.
Testa med:
python --versioneller:
py --versionKontrollera att du har installerat både beroenden och browsers:
pip install -r requirements.txt
playwright installKör:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypassoch försök sedan aktivera miljön igen.