首页 > 解决方案 > R从多个唯一的网址中抓取表格

问题描述

我希望从我在 Excel 工作表的列中列出的多个唯一 URL 中抓取表格。我已经准备好从单个 url 抓取的正确代码:

library(rvest)
library(tidyverse)
library(readxl)

onepage <- read_html("https://spd.gsd.state.nm.us/WebPortal/Modules/Procurement/Public/ProcurementsWebViewHistoricDetail.aspx?ID=geydyybpyy4yycey8rydyyboyysoycoygryn4yndybeyycoygwydnyy")

Procdetail <- onepage %>% html_element ("#ContentPlaceHolder1_divSoleSource.table.table-condensed.table-borderless") %>%
html_table ()

以及所有其他 URL 读入 R 的 Excel

 data <- read_excel("test.xlsx")
    urls <- (data$URL)

不幸的是,其余的 URL 不仅仅是彼此的排列。相反,它们都有随机的唯一 url 结尾。例如,这里还有两个 URL:

https://spd.gsd.state.nm.us/WebPortal/Modules/Procurement/Public/ProcurementsWebViewHistoricDetail.aspx?ID=grydyybpyy5yypoygwydyyboyysoycoygryn4ynfybgoyceygyydqyy https://spd.gsd.state.nm.us/WebPortal/Modules/Procurement/Public /ProcurementsWebViewHistoricDetail.aspx?ID=grydyybpyy5oyqeygwydyyboyysoycoygryn4yboyyayycoygoydqyy

关于如何从所有这些唯一的 URL 中自动抓取这些表的任何建议?提前谢谢了!

标签: rrvest

解决方案


您可以创建一个函数,然后使用 lapply 来遍历 url 的向量。

read_my_urls <- function(url){

    onepage <- read_html(url)

     Procdetail <- onepage %>% html_element("#ContentPlaceHolder1_divSoleSource.table.table-condensed.table-borderless") %>%
html_table ()
 Procdetail
}

my_scraped_data <- lapply(data$urls, read_my_urls)


推荐阅读