使用 R 在 Firefox 中创建当前打开的 URL 的向量

JSP*_*JSP 5 firefox r

我想使用 R 来提取当前在 Web 浏览器中打开的所有 URL。考虑以下示例:

如何从 R 中提取这两个 URL,以获得以下输出?

my_urls <- c("https://www.google.de/", "https://www.amazon.com/")
my_urls
### [1] "https://www.google.de/"  "https://www.amazon.com/"
Run Code Online (Sandbox Code Playgroud)

经过一些研究,我怀疑这可能与RSelenium 包有关,但不幸的是我无法找出合适的 R 代码。

H 1*_*H 1 3

这是执行此操作的一种方法(在 Windows 上,但同样的想法适用于其他平台)。

Firefox 将此信息存储在用户配置文件目录中的 json 恢复文件中。提取此数据应该很简单,除非 Firefox 使用自定义版本的 lz4 压缩来保存它。我找不到使用 Firefox 本身自动解压缩此文件而不引起潜在安全问题的方法,因此必须依赖dejsonlz4位于GitHub的第三方工具。下载并解压该工具后,您可以运行以下命令。请记住,打开/关闭选项卡与将此信息写入恢复文件之间可能会有一点延迟。

library(jsonlite)
library(dplyr)
library(purrr)

# Filepaths
recovery_filepath <- "C:/Users/{NAME}/appdata/Roaming/Mozilla/Firefox/Profiles/{PROFILE}/sessionstore-backups/recovery.jsonlz4"
filepath_to_tool <- "C:/Tools/dejsonlz4.exe"
output_file <- "rcvry.json"

# Uncompress recovery file
invisible(system(paste(filepath_to_tool, recovery_filepath, paste(dirname(recovery_filepath), output_file, sep = "/"))))

# Read uncompressed file
recovery_info <- read_json(paste(dirname(recovery_filepath), output_file, sep = "/"))

# Extract open tab information (expected result 2 pages)
recovery_info %>%
  pluck("windows", 1, "tabs") %>%
  map_df( ~ map_df(pluck(.x, "entries"),
                   ~ keep(.x, names(.) %in% c("url", "title")))[pluck(.x, "index"), ])

# A tibble: 2 x 2
  url                                                      title                                            
  <chr>                                                    <chr>                                            
1 /sf/ask/4277343031/~ webbrowser control - Create Vector of Currently ~
2 https://github.com/avih/dejsonlz4                        GitHub - avih/dejsonlz4: Decompress Mozilla Fire~
Run Code Online (Sandbox Code Playgroud)