graph LR
Requestium_Session_Orchestrator["Requestium Session Orchestrator"]
HTTP_Request_Handler["HTTP Request Handler"]
Selenium_WebDriver_Manager["Selenium WebDriver Manager"]
Session_State_Synchronizer["Session State Synchronizer"]
Content_Parsing_Module["Content Parsing Module"]
Requestium_Session_Orchestrator -- "orchestrates" --> HTTP_Request_Handler
Requestium_Session_Orchestrator -- "manages" --> Selenium_WebDriver_Manager
Session_State_Synchronizer -- "synchronizes state between" --> HTTP_Request_Handler
Session_State_Synchronizer -- "synchronizes state between" --> Selenium_WebDriver_Manager
HTTP_Request_Handler -- "provides response to" --> Content_Parsing_Module
Selenium_WebDriver_Manager -- "provides page source to" --> Content_Parsing_Module
Content_Parsing_Module -- "returns parsed data to" --> Requestium_Session_Orchestrator
click Requestium_Session_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/requestium/Requestium_Session_Orchestrator.md" "Details"
click HTTP_Request_Handler href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/requestium/HTTP_Request_Handler.md" "Details"
The requestium library's architecture is centered around the Requestium Session Orchestrator, which acts as the primary facade, unifying and coordinating both direct HTTP requests and browser automation. This orchestrator leverages an HTTP Request Handler for efficient, standard HTTP interactions and integrates a Selenium WebDriver Manager for dynamic content loading and complex browser-based operations. A critical Session State Synchronizer ensures seamless state consistency (e.g., cookies, user agent) between the HTTP and WebDriver components, enabling smooth transitions between interaction modes. Finally, a Content Parsing Module provides robust data extraction capabilities from both raw HTTP responses and live browser page sources, delivering parsed data back to the orchestrator for further processing. This design promotes a clear separation of concerns while maintaining a unified, high-level API for users.
Requestium Session Orchestrator [Expand]
The central facade and control hub of the requestium library, embodied by requestium.requestium_session.RequestiumSession. It unifies and orchestrates interactions between HTTP requests and browser automation, managing the overall session state and providing a high-level API for users. It directly manages the Selenium WebDriver instance and integrates the HTTP request capabilities.
Related Classes/Methods:
HTTP Request Handler [Expand]
Responsible for executing direct, efficient HTTP requests using the underlying requests library. It handles standard HTTP methods and manages session-level HTTP configurations, often integrated or utilized by the Requestium Session Orchestrator.
Related Classes/Methods:
Manages the interaction with the web browser via Selenium WebDriver. This component handles dynamic content loading, JavaScript execution, and complex user interactions requiring a full browser environment. Its functionality is directly controlled and exposed through the Requestium Session Orchestrator.
Related Classes/Methods: None
A crucial utility component, represented by requestium.requestium_mixin.RequestiumMixin, that ensures consistent session state, particularly cookies and user agent, between the HTTP Request Handler and Selenium WebDriver Manager. This enables seamless transitions between direct HTTP and browser-based interactions.
Related Classes/Methods:
Provides robust capabilities for extracting data from HTML/XML content using various selectors (XPath, CSS, Regex) via the Parsel library. It operates on both raw HTTP responses and the current browser page source, often encapsulated within requestium.requestium_response.RequestiumResponse.
Related Classes/Methods: