Tools to Work with the 'Splash' JavaScript Rendering Service in R
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.8 KiB

#' Turns a "HAR"-like object into a data frame(tibble)
#'
#' @md
#' @param x A `harentry` object
#' @param ... ignored
#' @return data frame (tibble)
#' @export
as_data_frame.harentry <- function(x, ...) {
req <- x$request
resp <- x$response
data_frame(
request_url = req$url,
request_method = req$method,
request_http_version = req$httpVersion,
request_query_string = list(req$queryString),
request_header_size = req$headersSize,
requestheaders = list(if (length(req$headers) > 0) flatten_df(req$headers) else data_frame()),
requestcookies = list(if (length(req$cookies) > 0) flatten_df(req$cookies) else data_frame()),
response_url = resp$url,
response_http_version = resp$httpVersion,
status_text = resp$statusText,
status = resp$status,
ok = resp$ok,
redirect_url = resp$redirectURL,
response_headers_size = resp$headersSize,
response_headers = list(if (length(resp$headers) > 0) flatten_df(resp$headers) else data_frame()),
response_cookies = list(if (length(resp$cookies) > 0) flatten_df(resp$cookies) else data_frame()),
response_body_size = resp$bodySize,
content_type = resp$content$mimeType,
content_encoding = resp$content$encoding %||% NA_character_,
content_size = resp$content$size,
content = resp$content$text %||% NA_character_
)
}
#' @rdname as_data_frame.harentry
#' @export
as_data_frame.harentries <- function(x, ...) {
map_df(x, as_data_frame)
}
#' @rdname as_data_frame.harentry
#' @export
as_data_frame.har <- function(x, ...) {
as_data_frame(x$log$entries)
}
#' @export
#' @rdname as_data_frame.harentry
as.data.frame.har <- as_data_frame.har
#' @export
#' @rdname as_data_frame.harentry
as.data.frame.harentries <- as_data_frame.harentries
#' @export
#' @rdname as_data_frame.harentry
as.data.frame.harentry <- as_data_frame.harentry