SessionRecorder

Struct SessionRecorder 

Source
pub struct SessionRecorder { /* private fields */ }
Expand description

Records CDP events and network traffic during a browser session.

Create one per scraping job, call record_event for each CDP event you want to log, then call stop and export_har when the session ends.

Implementations§

Source§

impl SessionRecorder

Source

pub fn start(config: RecorderConfig) -> Self

Start a new recorder with the given config.

Source

pub fn is_running(&self) -> bool

Returns true if the recorder is currently running.

Source

pub fn stop(&self)

Stop the recorder. No more events will be buffered after this.

Source

pub fn record_event(&self, method: &str, params: Value)

Record a raw CDP event by method name and parameters.

Call this for every CDP event you receive from the browser. The recorder automatically tracks Network.requestWillBeSent and Network.responseReceived events to build HAR entries.

Source

pub fn export_event_log(&self, path: impl AsRef<Path>) -> Result<()>

Export the buffered CDP event log as a newline-delimited JSON file.

§Errors

Returns an IO error if the file cannot be written.

Source

pub fn export_har(&self, path: impl AsRef<Path>) -> Result<()>

Export captured network transactions as a HAR 1.2 file.

§Errors

Returns an IO or serialisation error if the file cannot be written.

Source

pub fn event_count(&self) -> usize

Return the number of buffered CDP events.

Source

pub fn network_entry_count(&self) -> usize

Return the number of completed network entries.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more