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.

41 lines
2.6KB

  1. #' Return the HTML of the javascript-rendered page.
  2. #'
  3. #' Similar to `rvest::read_html`.
  4. #'
  5. #' @md
  6. #' @param splash_obj Object created by a call to [splash]
  7. #' @param url The URL to render (required)
  8. #' @param base_url TBD The base url to render the page with.
  9. #' @param timeout TBD A timeout (in seconds) for the render (defaults to 30).
  10. #' @param resource_timeout A timeout (in seconds) for individual network requests.
  11. #' @param wait Time (in seconds) to wait for updates after page is loaded (defaults to 0).
  12. #' @param proxy TBD Proxy profile name or proxy URL.
  13. #' @param js TBD Javascript profile name.
  14. #' @param js_src TBD JavaScript code to be executed in page context.
  15. #' @param filters TBD Comma-separated list of request filter names.
  16. #' @param allowed_domains TBD Comma-separated list of allowed domain names. If present, Splash won’t load anything neither from domains not in this list nor from subdomains of domains not in this list.
  17. #' @param allowed_content_types TBD Comma-separated list of allowed content types. If present, Splash will abort any request if the response’s content type doesn’t match any of the content types in this list. Wildcards are supported.
  18. #' @param forbidden_content_types TBD Comma-separated list of forbidden content types. If present, Splash will abort any request if the response’s content type matches any of the content types in this list. Wildcards are supported.
  19. #' @param viewport View width and height (in pixels) of the browser viewport to render the web page. Format is “<width>x<height>”, e.g. 800x600. Default value is 1024x768.
  20. #' @param images TBD Whether to download images.
  21. #' @param headers TBD HTTP headers to set for the first outgoing request.
  22. #' @param body TBD Body of HTTP POST request to be sent if method is POST.
  23. #' @param http_method TBD HTTP method of outgoing Splash request.
  24. #' @param save_args TBD A list of argument names to put in cache.
  25. #' @param load_args TBD Parameter values to load from cache
  26. #' @export
  27. render_html <- function(splash_obj, url, base_url, timeout=30, resource_timeout=NULL, wait=0,
  28. proxy, js, js_src, filters, allowed_domains="", allowed_content_types="",
  29. forbidden_content_types="", viewport="1024x768", images, headers, body,
  30. http_method, save_args, load_args) {
  31. res <- httr::GET(splash_url(splash_obj), path="render.html",
  32. encode="json",
  33. query=list(url=url, timeout=timeout, wait=wait, viewport=viewport))
  34. httr::stop_for_status(res)
  35. httr::content(res, as="text", encoding="UTF-8") %>%
  36. xml2::read_html()
  37. }