From 55adc4feb3986f11baec55511e5db7830c17c075 Mon Sep 17 00:00:00 2001 From: hrbrmstr Date: Tue, 26 Feb 2019 09:26:24 -0500 Subject: [PATCH] updated vignette --- .Rbuildignore | 2 + .gitignore | 2 + NAMESPACE | 3 + R/docker-splash.r | 14 +- R/helpers.r | 62 ++++++- cran-comments.md | 34 ++-- man/as_har.Rd | 2 +- man/as_httr_req.Rd | 2 +- man/as_response.Rd | 2 +- man/execute_lua.Rd | 2 +- man/get_content_size.Rd | 4 +- man/get_content_type.Rd | 4 +- man/get_har_entry.Rd | 4 +- man/get_header_val.Rd | 32 ++++ man/get_headers.Rd | 29 ++++ man/get_request_type.Rd | 4 +- man/get_request_url.Rd | 4 +- man/get_response_body.Rd | 4 +- man/get_response_url.Rd | 25 +++ man/har_entries.Rd | 2 +- man/har_entry_count.Rd | 6 +- man/json_fromb64.Rd | 2 +- man/render_har.Rd | 2 +- man/render_html.Rd | 2 +- man/render_jpeg.Rd | 2 +- man/render_json.Rd | 2 +- man/render_png.Rd | 2 +- man/splash_add_lua.Rd | 2 +- man/splash_click.Rd | 2 +- man/splash_enable_javascript.Rd | 2 +- man/splash_focus.Rd | 2 +- man/splash_go.Rd | 2 +- man/splash_har.Rd | 2 +- man/splash_har_reset.Rd | 2 +- man/splash_html.Rd | 2 +- man/splash_images.Rd | 2 +- man/splash_plugins.Rd | 2 +- man/splash_png.Rd | 2 +- man/splash_press.Rd | 2 +- man/splash_private_mode.Rd | 2 +- man/splash_release.Rd | 2 +- man/splash_response_body.Rd | 2 +- man/splash_send_keys.Rd | 2 +- man/splash_send_text.Rd | 2 +- man/splash_user_agent.Rd | 2 +- man/splash_wait.Rd | 2 +- vignettes/figures/splashr04.png | Bin 151781 -> 0 bytes vignettes/splashr_helpers.Rmd | 355 +++++++++++++++++++++++++--------------- 48 files changed, 454 insertions(+), 194 deletions(-) create mode 100644 man/get_header_val.Rd create mode 100644 man/get_headers.Rd create mode 100644 man/get_response_url.Rd delete mode 100644 vignettes/figures/splashr04.png diff --git a/.Rbuildignore b/.Rbuildignore index b68b069..e000b1c 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,3 +1,5 @@ +^Meta$ +^doc$ ^LICENSE\.md$ ^.*\.Rproj$ ^\.Rproj\.user$ diff --git a/.gitignore b/.gitignore index bf67b6f..829fa43 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +Meta +doc .Rproj.user .Rhistory .RData diff --git a/NAMESPACE b/NAMESPACE index bcfdc0a..fddc8a8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -20,10 +20,13 @@ export(get_body_size) export(get_content_size) export(get_content_type) export(get_har_entry) +export(get_header_val) +export(get_headers) export(get_headers_size) export(get_request_type) export(get_request_url) export(get_response_body) +export(get_response_url) export(har_entries) export(har_entry_count) export(install_splash) diff --git a/R/docker-splash.r b/R/docker-splash.r index ab90f6e..40ff162 100644 --- a/R/docker-splash.r +++ b/R/docker-splash.r @@ -120,12 +120,14 @@ killall_splash <- function() { x <- docker$container$list(all=TRUE) for (i in 1:nrow(x)) { - if (grepl("bin/splash", x$command[i])) { - message(sprintf("Pruning: %s...", x$id[i])) - if (x$state[i] == "running") { - cntnr <- docker$container$get(x$id[i]) - cntnr$stop() - cntnr$remove() + if (length(x$command[i])) { + if (grepl("bin/splash", x$command[i])) { + message(sprintf("Pruning: %s...", x$id[i])) + if (x$state[i] == "running") { + cntnr <- docker$container$get(x$id[i]) + cntnr$stop() + cntnr$remove() + } } } } diff --git a/R/helpers.r b/R/helpers.r index 21649c8..4036bc8 100644 --- a/R/helpers.r +++ b/R/helpers.r @@ -33,7 +33,9 @@ get_content_type <- function(har_resp_obj) { #' @param type content type to compare to (default: "`application/json`") #' @export is_content_type <- function(har_resp_obj, type="application/json") { - get_content_type(har_resp_obj) == type + res <- get_content_type(har_resp_obj) == type + if (is.na(res)) res <- FALSE + res } #' @rdname get_content_type @@ -101,6 +103,51 @@ is_xhr <- function(har_resp_obj) { } +#' Retrieve response headers as a data frame +#' +#' @md +#' @param har_resp_obj HAR response object +#' @note the `name` column that contains the header key is normalized to lower case +#' @family splash_har_helpers +#' @export +get_headers <- function(har_resp_obj) { + if (length(har_resp_obj$response$headers)) { + do.call( + rbind.data.frame, + lapply(har_resp_obj$response$headers, as.data.frame, stringsAsFactors=FALSE) + ) -> ret + ret[["name"]] <- tolower(ret[["name"]]) + class(ret) <- c("tbl_df", "tbl", "data.frame") + ret + } +} + +#' Retrieve the value of a specific response header +#' +#' @md +#' @param har_resp_obj HAR response object +#' @param header the header you want the value for +#' @note the `name` column that contains the header key is normalized to lower case +#' as is the passed-in requested header. Also, if there is more than one only +#' the first is returned. +#' @family splash_har_helpers +#' @export +get_header_val <- function(har_resp_obj, header) { + if (length(har_resp_obj$response$headers)) { + header <- tolower(header) + do.call( + rbind.data.frame, + lapply(har_resp_obj$response$headers, as.data.frame, stringsAsFactors=FALSE) + ) -> ret + ret[["name"]] <- tolower(ret[["name"]]) + ret <- unlist(ret[ret$name == header, "value"], use.names = FALSE) + if (length(ret)) ret <- ret[1] else ret <- NA_character_ + ret + } else { + NA_character_ + } +} + #' Retrieve request URL #' #' @param har_resp_obj HAR response object @@ -108,7 +155,18 @@ is_xhr <- function(har_resp_obj) { #' @export get_request_url <- function(har_resp_obj) { utype <- har_resp_obj$request$url - if (utype == "") return(NA_character_) + if (utype == "") utype <- NA_character_ + utype +} + +#' Retrieve response URL +#' +#' @param har_resp_obj HAR response object +#' @family splash_har_helpers +#' @export +get_response_url <- function(har_resp_obj) { + utype <- har_resp_obj$response$url + if (utype == "") utype <- NA_character_ utype } diff --git a/cran-comments.md b/cran-comments.md index af10c74..955812d 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,23 +1,33 @@ ## Test environments -* local OS X install, R 3.4.3 on both 10.12 and 10.13.2 -* local ubuntu 3.4.2 and r-devel +* local macOS install, R 3.5.2 on both macOS 10.14 +* local ubuntu 3.5.1 * ubuntu on travis-ci, R oldrel, current and r-devel * win-builder (devel and release) -## R CMD check results - -0 errors | 0 warnings | 1 note +--- -* This is a new release. +Per a note from Kurt the splashr now uses the +stevedore package since the docker package is +likely being retired from CRAN. -## Reverse dependencies +The invalid URL in the vignette (as noted in +an email thread) has been fixed. -This is a new release, so there are no reverse dependencies. +Tests require instllation of ~1.2GB docker image +which also means docker needs to be available. +Examples also require a Splash instance (dockerized +or full install) to work. Therefore, as has been the +case since the previous CRAN version, examples +are marked as dontrun and tests do not run on CRAN. +They do run monthly and on every repo push in Travis +https://travis-ci.org/hrbrmstr/splashr/settings. ---- +I can modify any of the above behavior to conform +to any CRAN policy I may be violating. -Submitting patch due to CRAN note. +License has been changed to MIT. -Removed clipboard functionality since that was the path of -least resistance. \ No newline at end of file +As always, thanks to the CRAN team for their +herculean efforts to keep the R package universe +healthy! \ No newline at end of file diff --git a/man/as_har.Rd b/man/as_har.Rd index 866d2bc..46dc461 100644 --- a/man/as_har.Rd +++ b/man/as_har.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/render-har.r +% Please edit documentation in R/render-har.R \name{as_har} \alias{as_har} \title{Turn a generic Splash HAR response into a HAR object} diff --git a/man/as_httr_req.Rd b/man/as_httr_req.Rd index 2b1a7a0..1e8fb45 100644 --- a/man/as_httr_req.Rd +++ b/man/as_httr_req.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/as_req.r +% Please edit documentation in R/as_req.R \name{as_httr_req} \alias{as_httr_req} \title{Create an httr verb request function from an HAR request} diff --git a/man/as_response.Rd b/man/as_response.Rd index 37bf656..322b086 100644 --- a/man/as_response.Rd +++ b/man/as_response.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/as_request.r +% Please edit documentation in R/as_request.R \name{as_response} \alias{as_response} \title{Return a HAR entry response as an httr::response object} diff --git a/man/execute_lua.Rd b/man/execute_lua.Rd index 1b50b40..21d2972 100644 --- a/man/execute_lua.Rd +++ b/man/execute_lua.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/execute.r +% Please edit documentation in R/execute.R \name{execute_lua} \alias{execute_lua} \title{Execute a custom rendering script and return a result.} diff --git a/man/get_content_size.Rd b/man/get_content_size.Rd index 7a0c151..559e9e1 100644 --- a/man/get_content_size.Rd +++ b/man/get_content_size.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/content.r +% Please edit documentation in R/content.R \name{get_content_size} \alias{get_content_size} \alias{get_body_size} @@ -21,9 +21,11 @@ Retrieve size of content | body | headers \seealso{ Other splash_har_helpers: \code{\link{get_content_type}}, \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, \code{\link{get_request_type}}, \code{\link{get_request_url}}, \code{\link{get_response_body}}, + \code{\link{get_response_url}}, \code{\link{har_entry_count}} } \concept{splash_har_helpers} diff --git a/man/get_content_type.Rd b/man/get_content_type.Rd index 0e3bbab..9586041 100644 --- a/man/get_content_type.Rd +++ b/man/get_content_type.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/helpers.r +% Please edit documentation in R/helpers.R \name{get_content_type} \alias{get_content_type} \alias{is_content_type} @@ -56,9 +56,11 @@ Retrieve or test content type of a HAR request object \seealso{ Other splash_har_helpers: \code{\link{get_content_size}}, \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, \code{\link{get_request_type}}, \code{\link{get_request_url}}, \code{\link{get_response_body}}, + \code{\link{get_response_url}}, \code{\link{har_entry_count}} } \concept{splash_har_helpers} diff --git a/man/get_har_entry.Rd b/man/get_har_entry.Rd index 4311cdf..b004460 100644 --- a/man/get_har_entry.Rd +++ b/man/get_har_entry.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/helpers.r +% Please edit documentation in R/helpers.R \name{get_har_entry} \alias{get_har_entry} \title{Retrieve an entry by index from a HAR object} @@ -17,9 +17,11 @@ Retrieve an entry by index from a HAR object \seealso{ Other splash_har_helpers: \code{\link{get_content_size}}, \code{\link{get_content_type}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, \code{\link{get_request_type}}, \code{\link{get_request_url}}, \code{\link{get_response_body}}, + \code{\link{get_response_url}}, \code{\link{har_entry_count}} } \concept{splash_har_helpers} diff --git a/man/get_header_val.Rd b/man/get_header_val.Rd new file mode 100644 index 0000000..74fa2ea --- /dev/null +++ b/man/get_header_val.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/helpers.R +\name{get_header_val} +\alias{get_header_val} +\title{Retrieve the value of a specific response header} +\usage{ +get_header_val(har_resp_obj, header) +} +\arguments{ +\item{har_resp_obj}{HAR response object} + +\item{header}{the header you want the value for} +} +\description{ +Retrieve the value of a specific response header +} +\note{ +the \code{name} column that contains the header key is normalized to lower case +as is the passed-in requested header. Also, if there is more than one only +the first is returned. +} +\seealso{ +Other splash_har_helpers: \code{\link{get_content_size}}, + \code{\link{get_content_type}}, + \code{\link{get_har_entry}}, \code{\link{get_headers}}, + \code{\link{get_request_type}}, + \code{\link{get_request_url}}, + \code{\link{get_response_body}}, + \code{\link{get_response_url}}, + \code{\link{har_entry_count}} +} +\concept{splash_har_helpers} diff --git a/man/get_headers.Rd b/man/get_headers.Rd new file mode 100644 index 0000000..f5fb4cd --- /dev/null +++ b/man/get_headers.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/helpers.R +\name{get_headers} +\alias{get_headers} +\title{Retrieve response headers as a data frame} +\usage{ +get_headers(har_resp_obj) +} +\arguments{ +\item{har_resp_obj}{HAR response object} +} +\description{ +Retrieve response headers as a data frame +} +\note{ +the \code{name} column that contains the header key is normalized to lower case +} +\seealso{ +Other splash_har_helpers: \code{\link{get_content_size}}, + \code{\link{get_content_type}}, + \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, + \code{\link{get_request_type}}, + \code{\link{get_request_url}}, + \code{\link{get_response_body}}, + \code{\link{get_response_url}}, + \code{\link{har_entry_count}} +} +\concept{splash_har_helpers} diff --git a/man/get_request_type.Rd b/man/get_request_type.Rd index ade7b01..72e4818 100644 --- a/man/get_request_type.Rd +++ b/man/get_request_type.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/helpers.r +% Please edit documentation in R/helpers.R \name{get_request_type} \alias{get_request_type} \alias{is_get} @@ -22,8 +22,10 @@ Retrieve or test request type Other splash_har_helpers: \code{\link{get_content_size}}, \code{\link{get_content_type}}, \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, \code{\link{get_request_url}}, \code{\link{get_response_body}}, + \code{\link{get_response_url}}, \code{\link{har_entry_count}} } \concept{splash_har_helpers} diff --git a/man/get_request_url.Rd b/man/get_request_url.Rd index ce17ffe..c9c91cc 100644 --- a/man/get_request_url.Rd +++ b/man/get_request_url.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/helpers.r +% Please edit documentation in R/helpers.R \name{get_request_url} \alias{get_request_url} \title{Retrieve request URL} @@ -16,8 +16,10 @@ Retrieve request URL Other splash_har_helpers: \code{\link{get_content_size}}, \code{\link{get_content_type}}, \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, \code{\link{get_request_type}}, \code{\link{get_response_body}}, + \code{\link{get_response_url}}, \code{\link{har_entry_count}} } \concept{splash_har_helpers} diff --git a/man/get_response_body.Rd b/man/get_response_body.Rd index 2542102..0ee7886 100644 --- a/man/get_response_body.Rd +++ b/man/get_response_body.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/helpers.r +% Please edit documentation in R/helpers.R \name{get_response_body} \alias{get_response_body} \title{Retrieve the body content of a HAR entry} @@ -22,8 +22,10 @@ Retrieve the body content of a HAR entry Other splash_har_helpers: \code{\link{get_content_size}}, \code{\link{get_content_type}}, \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, \code{\link{get_request_type}}, \code{\link{get_request_url}}, + \code{\link{get_response_url}}, \code{\link{har_entry_count}} } \concept{splash_har_helpers} diff --git a/man/get_response_url.Rd b/man/get_response_url.Rd new file mode 100644 index 0000000..e4d427f --- /dev/null +++ b/man/get_response_url.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/helpers.R +\name{get_response_url} +\alias{get_response_url} +\title{Retrieve response URL} +\usage{ +get_response_url(har_resp_obj) +} +\arguments{ +\item{har_resp_obj}{HAR response object} +} +\description{ +Retrieve response URL +} +\seealso{ +Other splash_har_helpers: \code{\link{get_content_size}}, + \code{\link{get_content_type}}, + \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, + \code{\link{get_request_type}}, + \code{\link{get_request_url}}, + \code{\link{get_response_body}}, + \code{\link{har_entry_count}} +} +\concept{splash_har_helpers} diff --git a/man/har_entries.Rd b/man/har_entries.Rd index b5969f9..bac527b 100644 --- a/man/har_entries.Rd +++ b/man/har_entries.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/helpers.r +% Please edit documentation in R/helpers.R \name{har_entries} \alias{har_entries} \title{Retrieve just the HAR entries from a splashr request} diff --git a/man/har_entry_count.Rd b/man/har_entry_count.Rd index 1ab8ef1..f9e66d1 100644 --- a/man/har_entry_count.Rd +++ b/man/har_entry_count.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/helpers.r +% Please edit documentation in R/helpers.R \name{har_entry_count} \alias{har_entry_count} \title{Retrieves number of HAR entries in a response} @@ -16,8 +16,10 @@ Retrieves number of HAR entries in a response Other splash_har_helpers: \code{\link{get_content_size}}, \code{\link{get_content_type}}, \code{\link{get_har_entry}}, + \code{\link{get_header_val}}, \code{\link{get_headers}}, \code{\link{get_request_type}}, \code{\link{get_request_url}}, - \code{\link{get_response_body}} + \code{\link{get_response_body}}, + \code{\link{get_response_url}} } \concept{splash_har_helpers} diff --git a/man/json_fromb64.Rd b/man/json_fromb64.Rd index dbc2a91..ae280bd 100644 --- a/man/json_fromb64.Rd +++ b/man/json_fromb64.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/utils.r +% Please edit documentation in R/utils.R \name{json_fromb64} \alias{json_fromb64} \title{Convert a Base64 encoded string into an R object} diff --git a/man/render_har.Rd b/man/render_har.Rd index 00d52b0..93b3b61 100644 --- a/man/render_har.Rd +++ b/man/render_har.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/render-har.r +% Please edit documentation in R/render-har.R \name{render_har} \alias{render_har} \title{Return information about Splash interaction with a website in HAR format.} diff --git a/man/render_html.Rd b/man/render_html.Rd index 7f4eebc..8012666 100644 --- a/man/render_html.Rd +++ b/man/render_html.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/render-html.r +% Please edit documentation in R/render-html.R \name{render_html} \alias{render_html} \title{Return the HTML of the javascript-rendered page.} diff --git a/man/render_jpeg.Rd b/man/render_jpeg.Rd index edd9d25..6924dff 100644 --- a/man/render_jpeg.Rd +++ b/man/render_jpeg.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/render-jpg.r +% Please edit documentation in R/render-jpg.R \name{render_jpeg} \alias{render_jpeg} \title{Return a image (in JPEG format) of the javascript-rendered page.} diff --git a/man/render_json.Rd b/man/render_json.Rd index 03d961d..26c02fb 100644 --- a/man/render_json.Rd +++ b/man/render_json.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/render-json.r +% Please edit documentation in R/render-json.R \name{render_json} \alias{render_json} \title{Return a json-encoded dictionary with information about javascript-rendered webpage.} diff --git a/man/render_png.Rd b/man/render_png.Rd index bd02d35..ec746f6 100644 --- a/man/render_png.Rd +++ b/man/render_png.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/render-png.r +% Please edit documentation in R/render-png.R \name{render_png} \alias{render_png} \title{Return an image (in PNG format) of the javascript-rendered page.} diff --git a/man/splash_add_lua.Rd b/man/splash_add_lua.Rd index f8d9c7d..ac57c03 100644 --- a/man/splash_add_lua.Rd +++ b/man/splash_add_lua.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_add_lua} \alias{splash_add_lua} \title{Add raw lua code into DSL call chain} diff --git a/man/splash_click.Rd b/man/splash_click.Rd index c1eed58..2ee197d 100644 --- a/man/splash_click.Rd +++ b/man/splash_click.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_click} \alias{splash_click} \title{Trigger mouse click event in web page.} diff --git a/man/splash_enable_javascript.Rd b/man/splash_enable_javascript.Rd index 4c54bd3..d359c7c 100644 --- a/man/splash_enable_javascript.Rd +++ b/man/splash_enable_javascript.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_enable_javascript} \alias{splash_enable_javascript} \title{Enable or disable execution of JavaSript code embedded in the page.} diff --git a/man/splash_focus.Rd b/man/splash_focus.Rd index 49ad75d..b31891c 100644 --- a/man/splash_focus.Rd +++ b/man/splash_focus.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_focus} \alias{splash_focus} \title{Focus on a document element provided by a CSS selector} diff --git a/man/splash_go.Rd b/man/splash_go.Rd index ec52ee5..f0c7698 100644 --- a/man/splash_go.Rd +++ b/man/splash_go.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_go} \alias{splash_go} \title{Go to an URL.} diff --git a/man/splash_har.Rd b/man/splash_har.Rd index 7b82ec3..b771ab3 100644 --- a/man/splash_har.Rd +++ b/man/splash_har.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_har} \alias{splash_har} \title{Return information about Splash interaction with a website in HAR format.} diff --git a/man/splash_har_reset.Rd b/man/splash_har_reset.Rd index f98551c..1ed9eaf 100644 --- a/man/splash_har_reset.Rd +++ b/man/splash_har_reset.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_har_reset} \alias{splash_har_reset} \title{Drops all internally stored HAR records.} diff --git a/man/splash_html.Rd b/man/splash_html.Rd index 9888cb0..cbe9427 100644 --- a/man/splash_html.Rd +++ b/man/splash_html.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_html} \alias{splash_html} \title{Return a HTML snapshot of a current page.} diff --git a/man/splash_images.Rd b/man/splash_images.Rd index 7a15144..1268b30 100644 --- a/man/splash_images.Rd +++ b/man/splash_images.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_images} \alias{splash_images} \title{Enable/disable images} diff --git a/man/splash_plugins.Rd b/man/splash_plugins.Rd index 13f814f..f7df3d0 100644 --- a/man/splash_plugins.Rd +++ b/man/splash_plugins.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_plugins} \alias{splash_plugins} \title{Enable or disable browser plugins (e.g. Flash).} diff --git a/man/splash_png.Rd b/man/splash_png.Rd index 5a50a92..a20cfdb 100644 --- a/man/splash_png.Rd +++ b/man/splash_png.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_png} \alias{splash_png} \title{Return a screenshot of a current page in PNG format.} diff --git a/man/splash_press.Rd b/man/splash_press.Rd index ce4f99d..3b506d8 100644 --- a/man/splash_press.Rd +++ b/man/splash_press.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_press} \alias{splash_press} \title{Trigger mouse press event in web page.} diff --git a/man/splash_private_mode.Rd b/man/splash_private_mode.Rd index 6e33cc8..36a0c8b 100644 --- a/man/splash_private_mode.Rd +++ b/man/splash_private_mode.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_private_mode} \alias{splash_private_mode} \title{Enable or disable execution of JavaSript code embedded in the page.} diff --git a/man/splash_release.Rd b/man/splash_release.Rd index 50d38f0..39a8651 100644 --- a/man/splash_release.Rd +++ b/man/splash_release.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_release} \alias{splash_release} \title{Trigger mouse release event in web page.} diff --git a/man/splash_response_body.Rd b/man/splash_response_body.Rd index 300a6bc..9f2753d 100644 --- a/man/splash_response_body.Rd +++ b/man/splash_response_body.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_response_body} \alias{splash_response_body} \title{Enable or disable response content tracking.} diff --git a/man/splash_send_keys.Rd b/man/splash_send_keys.Rd index 9e0e6e9..b1ceda9 100644 --- a/man/splash_send_keys.Rd +++ b/man/splash_send_keys.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_send_keys} \alias{splash_send_keys} \title{Send keyboard events to page context.} diff --git a/man/splash_send_text.Rd b/man/splash_send_text.Rd index b912c83..412ad95 100644 --- a/man/splash_send_text.Rd +++ b/man/splash_send_text.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_send_text} \alias{splash_send_text} \title{Send text as input to page context, literally, character by character.} diff --git a/man/splash_user_agent.Rd b/man/splash_user_agent.Rd index 69f5965..d0fdc63 100644 --- a/man/splash_user_agent.Rd +++ b/man/splash_user_agent.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r, R/user-agents.R +% Please edit documentation in R/dsl.R, R/user-agents.R \docType{data} \name{splash_user_agent} \alias{splash_user_agent} diff --git a/man/splash_wait.Rd b/man/splash_wait.Rd index 53df349..6fa1180 100644 --- a/man/splash_wait.Rd +++ b/man/splash_wait.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/dsl.r +% Please edit documentation in R/dsl.R \name{splash_wait} \alias{splash_wait} \title{Wait for a period time} diff --git a/vignettes/figures/splashr04.png b/vignettes/figures/splashr04.png deleted file mode 100644 index dd4706f50c9aa46633de1c4d12bfe00b8e3d8eac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151781 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
yjMDRM6#FeSprLb= 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ξCguD6&~0 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 diff --git a/vignettes/splashr_helpers.Rmd b/vignettes/splashr_helpers.Rmd index 475ad7d..4f7b2f9 100644 --- a/vignettes/splashr_helpers.Rmd +++ b/vignettes/splashr_helpers.Rmd @@ -22,109 +22,106 @@ Let's see what extra goodies `splashr` provides to make our lives easier. ## Handling `splashr` Objects One of the most powerful functions in `splashr` is `render_har()`. You get every component loaded by dynamic web page, and some sites have upwards of 100 elements for any given page. How can you get to the bits that you want? - -Let's use a different example that's a bit gnarly (i.e. you may need to work through it a couple times). - -The U.K. government has an open data portal and one of the sections contains map tiles for various grid quadrants. It's a really nice site, but it's designed for interactive use and we want to be able to get to all the tile files programmatically. For our example, we'll be grabbing data from . - - - -Since we don't know what we need, let's use `render_har()` to get everything back into R: - +We'll use `render_har()` to demonstrate how to find resources a site loads and use the data we gather to assess how "safe" these sites are — i.e. how many third-party javascript components they load and how safely they are loaded. Note that code in this vignette assumes a Splash instance is running locally on your system. + +We'll check first since Apple claims to care about our privacy. If that's true, then they'll will load few or no third-party content. + +```{r eval=FALSE} +(apple <- render_har(url = "https://apple.com/", response_body = TRUE)) +## --------HAR VERSION-------- +## HAR specification version: 1.2 +## --------HAR CREATOR-------- +## Created by: Splash +## version: 3.3.1 +## --------HAR BROWSER-------- +## Browser: QWebKit +## version: 602.1 +## --------HAR PAGES-------- +## Page id: 1 , Page title: Apple +## --------HAR ENTRIES-------- +## Number of entries: 84 +## REQUESTS: +## Page: 1 +## Number of entries: 84 +## - https://apple.com/ +## - https://www.apple.com/ +## - https://www.apple.com/ac/globalnav/4/en_US/styles/ac-globalnav.built.css +## - https://www.apple.com/ac/localnav/4/styles/ac-localnav.built.css +## - https://www.apple.com/ac/globalfooter/4/en_US/styles/ac-globalfooter.built.css +## ........ +## - https://www.apple.com/v/home/ea/images/heroes/iphone-xs/iphone_xs_0afef_mediumtall.jpg +## - https://www.apple.com/v/home/ea/images/heroes/iphone-xr/iphone_xr_5e40f_mediumtall.jpg +## - https://www.apple.com/v/home/ea/images/heroes/iphone-xs/iphone_xs_0afef_mediumtall.jpg +## - https://www.apple.com/v/home/ea/images/heroes/macbook-air/macbook_air_mediumtall.jpg +## - https://www.apple.com/v/home/ea/images/heroes/macbook-air/macbook_air_mediumtall.jpg ``` -library(splashr) -library(httr) -library(tidyverse) - -pg_har <- render_har(url = "http://environment.data.gov.uk/ds/survey/index.jsp#/survey?grid=TQ38", response_body = TRUE, wait = 10) - -entries <- har_entries(pg_har) - -map_chr(entries, get_content_type) %>% - table() -## . -## application/json image/gif image/png text/css text/html -## 33 1 24 1 1 -## text/javascript -## 1 - -map_chr(entries, get_request_url) -## [1] "http://environment.data.gov.uk/ds/survey/index.jsp#/survey?grid=TQ38" -## [2] "http://www.geostore.com/environment-agency/survey.full.min.170718.css" -## [3] "http://www.geostore.com/environment-agency/survey.full.min.170718.js" -## [4] "http://environment.data.gov.uk/ds/survey/images/busy.gif" -## [5] "http://environment.data.gov.uk/ds/survey/rest/config/download?_=1503933543160" -## [6] "http://www.geostore.com/environment-agency/rest/grid/EA_SUPPLIED_OS_10KM/TQ38" -## [7] "http://www.geostore.com/environment-agency/rest/gazetteer/search/postcode/TQ38" -## [8] "http://environment.data.gov.uk/ds/survey/images/download.png" -## [9] "http://www.geostore.com/environment-agency/images/dgu-header-white.png" -## [10] "http://www.geostore.com/environment-agency/images/airbus-footer-logo.png" -## [11] "http://www.geostore.com/environment-agency/images/ogl-symbol-41px-retina-black.png" -## [12] "http://environment.data.gov.uk/ds/survey/fonts/glyphicons-halflings-regular.woff2" -## [13] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=390919.47990708053%2C234551.68794424832%2C469103.375888497%2C312735.5839256648" -## [14] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=469103.37588850036%2C234551.68794424832%2C547287.2718699168%2C312735.5839256648" -## [15] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=390919.47990708053%2C312735.5839256644%2C469103.375888497%2C390919.4799070809" -## [16] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=390919.47990708053%2C156367.7919628322%2C469103.375888497%2C234551.68794424867" -## [17] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=312735.5839256644%2C234551.68794424832%2C390919.4799070809%2C312735.5839256648" -## [18] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=469103.37588850036%2C312735.5839256644%2C547287.2718699168%2C390919.4799070809" -## [19] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=469103.37588850036%2C156367.7919628322%2C547287.2718699168%2C234551.68794424867" -## [20] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=312735.5839256644%2C312735.5839256644%2C390919.4799070809%2C390919.4799070809" -## [21] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=312735.5839256644%2C156367.7919628322%2C390919.4799070809%2C234551.68794424867" -## [22] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=547287.2718699165%2C234551.68794424832%2C625471.1678513329%2C312735.5839256648" -## [23] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=547287.2718699165%2C312735.5839256644%2C625471.1678513329%2C390919.4799070809" -## [24] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=547287.2718699165%2C156367.7919628322%2C625471.1678513329%2C234551.68794424867" -## [25] "http://www.geostore.com/environment-agency/rest/grid/EA_SUPPLIED_OS_10KM/535000/185000" -## [26] "http://www.geostore.com/environment-agency/rest/gazetteer/search/postcode/TQ38 - OS" -## [27] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=527741.2978745624%2C175913.76595818624%2C537514.2848722395%2C185686.7529558633" -## [28] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=527741.2978745624%2C185686.75295586511%2C537514.2848722395%2C195459.7399535422" -## [29] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=537514.2848722376%2C175913.76595818624%2C547287.2718699146%2C185686.7529558633" -## [30] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=537514.2848722376%2C185686.75295586511%2C547287.2718699146%2C195459.7399535422" -## [31] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=517968.31087688357%2C175913.76595818624%2C527741.2978745606%2C185686.7529558633" -## [32] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=517968.31087688357%2C185686.75295586511%2C527741.2978745606%2C195459.7399535422" -## [33] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=547287.2718699165%2C175913.76595818624%2C557060.2588675935%2C185686.7529558633" -## [34] "http://www.geostore.com/environment-agency/WMSExpeditedAdapter?SESSIONID=UEADOWNLOAD&CID=CDEFAULTEAGEOSTORE&UID=UEADOWNLOAD&PASSWORD=A1r5us2015DLD&INTERFACE=EAPUBLICDOWNLOAD&MAP=%2Fvar%2Fmapserver%2Fmapfiles%2FEAPUBLIC.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=EA-DLD-OSRASTERS&TILED=false&SRS=EPSG%3A27700&WIDTH=256&HEIGHT=256&CRS=EPSG%3A27700&STYLES=&BBOX=547287.2718699165%2C185686.75295586511%2C557060.2588675935%2C195459.7399535422" -## [35] "http://www.geostore.com/environment-agency/rest/product/EA_SUPPLIED_OS_10KM/TQ38?catalogName=Survey" -## [36] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2003-EA" -## [37] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2005-EA" -## [38] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2009-EA" -## [39] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2015-EA" -## [40] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-GROUP-ENGLAND-EA" -## [41] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-1999-EA" -## [42] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2002-EA" -## [43] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2007-EA" -## [44] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2011-EA" -## [45] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-2012-EA" -## [46] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2003-EA" -## [47] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2005-EA" -## [48] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2009-EA" -## [49] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2015-EA" -## [50] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-GROUP-ENGLAND-EA" -## [51] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2002-EA" -## [52] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2007-EA" -## [53] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2011-EA" -## [54] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-2012-EA" -## [55] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-LAZ-ENGLAND-EA" -## [56] "http://www.geostore.com/environment-agency/rest/product/group/OAP-INCIDENTRESPONSE-ENGLAND-EA" -## [57] "http://www.geostore.com/environment-agency/rest/product/group/VAP-NIGHTTIME-ENGLAND-2012-EA" -## [58] "http://www.geostore.com/environment-agency/rest/product/group/VAP-RGB-ENGLAND-2008-EA" -## [59] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DSM-TIMESTAMPED-ENGLAND-EA" -## [60] "http://www.geostore.com/environment-agency/rest/product/group/LIDAR-DTM-TIMESTAMPED-ENGLAND-EA" -## [61] "http://www.geostore.com/environment-agency/rest/product/group/VAP-NIGHTTIME-ENGLAND-EA" -## [62] "http://www.geostore.com/environment-agency/rest/product/group/VAP-RGB-ENGLAND-EA" + +The HAR output shows that when you visit `apple.com` your browser makes at least 84 requests for resources. We can see what types of content is loaded: + +```{r eval=FALSE} +har_entries(apple) %>% + purrr::map_chr(get_content_type) %>% + table(dnn = "content_type") %>% + broom::tidy() %>% + dplyr::arrange(desc(n)) +## # A tibble: 9 x 2 +## content_type n +## +## 1 font/woff2 27 +## 2 application/x-javascript 15 +## 3 image/svg+xml 10 +## 4 text/css 9 +## 5 image/jpeg 7 +## 6 image/png 6 +## 7 application/font-woff 4 +## 8 text/html 3 +## 9 application/json 2 ``` -Many of those resources are just image tiles for the map you see in the screenshot. Let's try to find data files: +Lots of calls to fonts, 15 javascript files and even 2 JSON files. Let's see what the domains are for these resources: +```{r eval=FALSE} +har_entries(apple) %>% + purrr::map_chr(get_response_url) %>% + purrr::map_chr(urltools::domain) %>% + unique() +## [1] "apple.com" "www.apple.com" "securemetrics.apple.com" ``` -map_lgl(entries, is_json) -## [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE NA FALSE -## [14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE -## [27] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE -## [40] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE -## [53] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE + +Wow! Only calls to Apple-controlled resources. + +I wonder what's in those JSON files, though: + +```{r eval=FALSE} +har_entries(apple) %>% + purrr::keep(is_json) %>% + purrr::map(get_response_body, "text") %>% + purrr::map(jsonlite::fromJSON) %>% + str(3) +## List of 2 +## $ :List of 2 +## ..$ locale :List of 3 +## .. ..$ country : chr "us" +## .. ..$ attr : chr "en-US" +## .. ..$ textDirection: chr "ltr" +## ..$ localeswitcher:List of 7 +## .. ..$ name : chr "localeswitcher" +## .. ..$ metadata : Named list() +## .. ..$ displayIndex: int 1 +## .. ..$ copy :List of 5 +## .. ..$ continue :List of 5 +## .. ..$ exit :List of 5 +## .. ..$ select :List of 5 +## $ :List of 2 +## ..$ id : chr "ad6ca319-1ef1-20da-c4e0-5185088996cb" +## ..$ results:'data.frame': 2 obs. of 2 variables: +## .. ..$ sectionName : chr [1:2] "quickLinks" "suggestions" +## .. ..$ sectionResults:List of 2 ``` -Now, we're getting somewhere. The `har_entries()` function makes it easy to get to the individual elements and we can use the `is_json()` helper with `purrr` functions to slice and dice at will. Here are all the `is_` functions you can use with HAR objects: +So, locale metadata and something to do with on-page links/suggestions. + +As demonstrated, the `har_entries()` function makes it easy to get to the individual elements and we used the `is_json()` helper with `purrr` functions to slice and dice the structure at will. Here are all the `is_` functions you can use with HAR objects: - `is_binary()` - `is_content_type()` @@ -145,60 +142,141 @@ You can also use various `get_` helpers to avoid gnarly `$` or `[[]]` constructs - `get_body_size()` --- Retrieve size of content | body | headers - `get_content_size()` --- Retrieve size of content | body | headers - `get_content_type()` --- Retrieve or test content type of a HAR request object +- `get_headers` --- Retrieve response headers as a data frame - `get_headers_size()` --- Retrieve size of content | body | headers - `get_request_type()` --- Retrieve or test request type - `get_request_url()` --- Retrieve request URL +- `get_response_url()` --- Retrieve response URL - `get_response_body()` --- Retrieve the body content of a HAR entry We've seen one example of them already, here's another: -``` -map_dbl(entries, get_body_size) -## [1] 1180 132571 1211097 701 -1 466 20342 579 4489 -## [10] 13332 1774 18028 59782 48008 55270 48323 42879 36116 -## [19] 69560 59602 58135 37443 17266 49840 464 20342 14579 -## [28] 14626 16265 14473 14565 13639 15106 12383 41887 186 -## [37] 186 186 186 185 186 186 186 186 186 -## [46] 186 186 186 186 185 186 186 186 186 -## [55] 223 286 170 158 272 272 280 267 +```{r eval=FALSE} +har_entries(apple) %>% + purrr::map_dbl(get_body_size) +## [1] 0 54521 95644 98069 43183 8689 19035 794210 66487 133730 311054 13850 199928 161859 90322 343189 19035 +## [18] 794210 66487 133730 554 802 1002 1160 1694 264 1082 1661 390 416 108468 108828 100064 109728 +## [35] 109412 99196 108856 109360 108048 8868 10648 10380 10476 137 311054 13850 3192 3253 4130 2027 1247 +## [52] 1748 582 199928 109628 107832 109068 100632 108928 97812 108312 108716 107028 65220 73628 72188 72600 70400 +## [69] 73928 72164 73012 71080 1185 161859 90322 343189 0 491 60166 58509 60166 58509 53281 53281 ``` -You can bop around the data and you'll find that the one we want is a "catalog" file). We can look for it with these tools: +So, a visit to Apple's page transfers nearly 8MB of content down to your browser. -``` -idx <- which(map_lgl(entries, is_json)) +California also claims to care about your privacy, but is it _really_ true? -map_chr(entries[idx], get_request_url) %>% - grepl("catalog", .) %>% - which() -## [1] 6 -``` +```{r eval=FALSE} +ca <- render_har(url = "https://www.ca.gov/", response_body = TRUE) -and, then use another helper `as_response()` which makes the HAR entry behave like an `httr` `response` object so we can use familiar idioms to get the data. +har_entries(ca) %>% + purrr::map_chr(~.x$response$url %>% urltools::domain()) %>% + unique() +## [1] "www.ca.gov" "fonts.googleapis.com" "california.azureedge.net" +## [4] "portal-california.azureedge.net" "az416426.vo.msecnd.net" "fonts.gstatic.com" +## [7] "ssl.google-analytics.com" "cse.google.com" "translate.google.com" +## [10] "api.stateentityprofile.ca.gov" "translate.googleapis.com" "www.google.com" +## [13] "clients1.google.com" "www.gstatic.com" "platform.twitter.com" +## [16] "dc.services.visualstudio.com" +``` +Yikes! It _sure_ doesn't look that way given all the folks they let track you when you visit their main page. Are they executing javascript from those sites? + +```{r eval=FALSE} +## # A tibble: 8 x 2 +## dom type +## +## 1 california.azureedge.net application/javascript +## 2 california.azureedge.net application/x-javascript +## 3 az416426.vo.msecnd.net application/x-javascript +## 4 cse.google.com text/javascript +## 5 translate.google.com text/javascript +## 6 translate.googleapis.com text/javascript +## 7 www.google.com text/javascript +## 8 platform.twitter.com application/javascript ``` -as_response(entries[idx][[6]]) %>% - content(as = "text", encoding = "UTF-8") %>% - jsonlite::fromJSON(flatten=TRUE) %>% - tbl_df() %>% - glimpse() -## Observations: 99 -## Variables: 12 -## $ id 170653, 170659, 170560, 170565, 178189, 178307, 201556, 238312, 238307, 2383... -## $ guid "54595a8c-b267-11e6-93d3-9457a5578ca0", "63176082-b267-11e6-93d3-9457a5578ca... -## $ pyramid "LIDAR-DSM-1M-ENGLAND-2003-EA", "LIDAR-DSM-1M-ENGLAND-2003-EA", "LIDAR-DSM-1... -## $ tileReference "TQ38", "TQ38", "TQ38", "TQ38", "TQ38", "TQ38", "TQ38", "TQ38", "TQ38", "TQ3... -## $ fileName "LIDAR-DSM-1M-2003-TQ38se.zip", "LIDAR-DSM-1M-2003-TQ38ne.zip", "LIDAR-DSM-1... -## $ coverageLayer "LIDAR-DSM-1M-ENGLAND-2003-EA-MD-YY", "LIDAR-DSM-1M-ENGLAND-2003-EA-MD-YY", ... -## $ fileSize 76177943, 52109669, 59326278, 18048623, 11919071, 13204420, 511124, 11736980... -## $ descriptiveName "LIDAR Tiles DSM at 1m spatial resolution 2003", "LIDAR Tiles DSM at 1m spat... -## $ description "1m", "1m", "1m", "1m", "1m", "1m", "1m", "1m", "1m", "1m", "1m", "DSM at 1m... -## $ groupName "LIDAR-DSM-TIMESTAMPED-ENGLAND-2003-EA", "LIDAR-DSM-TIMESTAMPED-ENGLAND-2003... -## $ displayOrder -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100... -## $ metaDataUrl NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "https://data.gov.uk/dataset/lid... + +We can also examine the response headers to check for signs of safety as well (i.e. are there content security policy headers or other types of security-oriented headers): + +```{r eval=FALSE} +har_entries(ca) %>% + purrr::map_df(get_headers) %>% + dplyr::count(name, sort=TRUE) %>% + print(n=50) +## # A tibble: 42 x 2 +## name n +## +## 1 date 149 +## 2 server 148 +## 3 content-type 142 +## 4 last-modified 126 +## 5 etag 104 +## 6 content-encoding 83 +## 7 access-control-allow-origin 78 +## 8 accept-ranges 74 +## 9 vary 69 +## 10 content-length 66 +## 11 x-ms-ref 57 +## 12 x-ms-ref-originshield 57 +## 13 access-control-expose-headers 56 +## 14 content-md5 51 +## 15 x-ms-blob-type 51 +## 16 x-ms-lease-status 51 +## 17 x-ms-request-id 51 +## 18 x-ms-version 51 +## 19 cache-control 37 +## 20 expires 34 +## 21 alt-svc 30 +## 22 x-xss-protection 29 +## 23 x-content-type-options 27 +## 24 age 22 +## 25 transfer-encoding 20 +## 26 timing-allow-origin 14 +## 27 x-powered-by 14 +## 28 access-control-allow-headers 7 +## 29 pragma 6 +## 30 request-context 5 +## 31 x-aspnet-version 5 +## 32 x-frame-options 4 +## 33 content-disposition 3 +## 34 access-control-max-age 2 +## 35 content-language 2 +## 36 p3p 2 +## 37 x-cache 2 +## 38 access-control-allow-methods 1 +## 39 location 1 +## 40 set-cookie 1 +## 41 strict-transport-security 1 +## 42 x-ms-session-id 1 ``` -Nowm, we have the data file download and metadata info. +Unfortunately, they do let Google and Twitter execute javascript. + +They seem to use quite a bit of Microsoft tech. Let's look at the HTTP servers they directly and indirectly rely on: + +```{r eval=FALSE} +har_entries(ca) %>% + purrr::map_chr(get_header_val, "server") %>% + table(dnn = "server") %>% + broom::tidy() %>% + dplyr::arrange(desc(n)) +## # A tibble: 14 x 2 +## server n +## +## 1 Apache 55 +## 2 Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 50 +## 3 sffe 23 +## 4 Microsoft-IIS/10.0 7 +## 5 ESF 3 +## 6 HTTP server (unknown) 2 +## 7 ECAcc (bsa/EAD2) 1 +## 8 ECD (sjc/16E0) 1 +## 9 ECD (sjc/16EA) 1 +## 10 ECD (sjc/16F4) 1 +## 11 ECD (sjc/4E95) 1 +## 12 ECD (sjc/4E9F) 1 +## 13 ECS (bsa/EB1F) 1 +## 14 gws 1 +``` ## Impersonating Other Browsers @@ -216,12 +294,17 @@ The various `render_` functions present themselves as modern WebKit Linux browse - `ua_linux_chrome` - `ua_linux_firefox` - `ua_ios_safari` +- `ua_android_samsung` +- `ua_kindle` +- `ua_ps4` +- `ua_apple_tv` +- `ua_chromecast` NOTE: These can be used with `curl`, `httr`, `rvest` and `RCurl` calls as well. We can wee it in action: -``` +```{r eval=FALSE} URL <- "https://httpbin.org/user-agent" splash_local %>% @@ -251,7 +334,7 @@ The `install_splash()` will pull the image locally for you. It takes a bit (the The best way to use start/stop is to: -``` +```{r eval=FALSE} spi <- start_splash() # ... scraping tasks ...