graph LR
Browser_Manager["Browser Manager"]
Crawler_Strategy["Crawler Strategy"]
Scripting_Engine["Scripting Engine"]
Browser_Adapter["Browser Adapter"]
Browser_Profiler["Browser Profiler"]
Browser_Manager -- "provides instances to" --> Crawler_Strategy
Browser_Manager -- "utilizes" --> Browser_Profiler
Crawler_Strategy -- "requests instances from" --> Browser_Manager
Crawler_Strategy -- "invokes" --> Scripting_Engine
Crawler_Strategy -- "leverages" --> Browser_Adapter
Scripting_Engine -- "provides capabilities to" --> Crawler_Strategy
Browser_Adapter -- "provides functionalities to" --> Crawler_Strategy
Browser_Profiler -- "provides data to" --> Browser_Manager
The Browser Automation Layer subsystem is responsible for programmatically controlling web browsers to navigate, interact with, and extract content from web pages. It forms the foundational layer for web scraping, providing the necessary abstractions to manage browser instances, execute scripts, and handle various browser-specific functionalities.
Manages the lifecycle of browser instances and contexts (e.g., Playwright Browser and BrowserContext objects). It is responsible for launching, configuring, and closing browsers, ensuring isolated and efficient browsing sessions.
Related Classes/Methods:
Orchestrates the high-level web crawling process within a browser context. This includes navigating to URLs, performing page interactions (clicks, typing, scrolling), capturing various forms of content (HTML, screenshots, PDFs), and triggering the execution of custom automation scripts.
Related Classes/Methods:
Provides the capability to define, compile, and execute custom browser automation sequences, often in the form of JavaScript snippets or a Domain-Specific Language (DSL). It translates high-level commands into executable code within the browser's page context.
Related Classes/Methods:
Offers a standardized, low-level interface for specific browser functionalities that are not directly part of navigation or interaction. This includes capturing console messages, handling network requests, managing specific browser events, and providing direct access to page elements.
Related Classes/Methods:
Manages browser profiles, which are essential for maintaining session state, cookies, local storage, and other user-specific data across crawling sessions. It ensures that each browsing session can be configured with specific persistent data.
Related Classes/Methods: