archivebox.personas.models
Persona management for ArchiveBox.
A Persona represents a browser profile/identity used for archiving. Each persona has its own:
Chrome user data directory (for cookies, localStorage, extensions, etc.)
Chrome extensions directory
Cookies file
Config overrides
Module Contents
Classes
Browser persona/profile for archiving sessions. |
Data
API
- class archivebox.personas.models.Persona[source]
Bases:
archivebox.base_models.models.ModelWithConfigBrowser persona/profile for archiving sessions.
Each persona provides:
CHROME_USER_DATA_DIR: Chrome profile directory
CHROME_EXTENSIONS_DIR: Installed extensions directory
CHROME_DOWNLOADS_DIR: Chrome downloads directory
COOKIES_FILE: Cookies file for wget/curl
config: JSON field with persona-specific config overrides
Usage: # Get persona and its derived config config = get_config(persona=crawl.persona, crawl=crawl, snapshot=snapshot) chrome_dir = config[‘CHROME_USER_DATA_DIR’]
# Or access directly from persona persona = Persona.objects.get(name='Default') persona.CHROME_USER_DATA_DIR # -> Path to chrome_user_data
- property CHROME_USER_DATA_DIR: str[source]
Derived path to Chrome user data directory for this persona.
- property CHROME_EXTENSIONS_DIR: str[source]
Derived path to Chrome extensions directory for this persona.
- property CHROME_DOWNLOADS_DIR: str[source]
Derived path to Chrome downloads directory for this persona.
- get_derived_config() dict[source]
Get config dict with derived paths filled in.
Returns dict with:
All values from self.config JSONField
CHROME_USER_DATA_DIR (derived from persona path)
CHROME_EXTENSIONS_DIR (derived from persona path)
CHROME_DOWNLOADS_DIR (derived from persona path)
COOKIES_FILE (derived from persona path, if file exists)
AUTH_STORAGE_FILE (derived from persona path, if file exists)
ACTIVE_PERSONA (set to this persona’s name)
- cleanup_chrome_profile(profile_dir: pathlib.Path) bool[source]
Remove volatile Chrome state that should never be reused across launches.
- classmethod get_or_create_default() archivebox.personas.models.Persona[source]
Get or create the Default persona.