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.
37 lines
930 B
37 lines
930 B
.darkdumpr_ua <- "Mozilla/5.0 (Compatible; r-darkdumpr/1.0; https://gitlab.com/hrbrmstr/darkdumpr)"
|
|
|
|
#' Query darkdump.io for Dark Web Content
|
|
#'
|
|
#' @param query <chr> terms to search (supports
|
|
#' [darkdump.io advanced search composition](https://darksearch.io/dorks)).
|
|
#' @param page pagination control
|
|
#' @return data frame with a "`metadata`" atttribute containing pagination info
|
|
#' @export
|
|
#' @examples
|
|
#' search_noir("ransomware")
|
|
search_noir <- function(query, page = 1) {
|
|
|
|
httr::GET(
|
|
url = "https://darksearch.io/api/search",
|
|
query = list(
|
|
query = query[1],
|
|
page = page[1]
|
|
),
|
|
httr::user_agent(.darkdumpr_ua)
|
|
) -> res
|
|
|
|
httr::stop_for_status(res)
|
|
|
|
out <- httr::content(res, as = "text", encoding = "UTF-8")
|
|
out <- jsonlite::fromJSON(out)
|
|
|
|
if (hasName(out, "data")) {
|
|
ret <- out$data
|
|
out$data <- NULL
|
|
attr(ret, "metadata") <- out
|
|
ret
|
|
} else {
|
|
out
|
|
}
|
|
|
|
}
|