首页 > 解决方案 > 使用下拉列表抓取历史数据

问题描述

我尝试从https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=reportsSearch.process抓取数据。如您所见,有一个下拉菜单可以调用历史数据。但是,该链接与日期范围无关。因此,我无法创建一个 rvest 循环去相关日期和抓取数据。在这种情况下,如何从该页面获取历史药物批准数据?

标签: r

解决方案


例如,2019 年 7 月的 url 似乎是“ https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=reportsSearch.process&rptName=0& reportSelectMonth =7& reportSelectYear =2019”所以你可以创建几个月和几年的循环,将它们应用于url的reportSelectMonth和reportSelectYear部分,并在每个动态创建的url上调用read_html()?

例如,如果您想要所有 2017 年和 2018 年,您可以这样做:

library(rvest)
baseUrl <- "https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=reportsSearch.process&rptName=0&"
for (year in 2017:2018) {
    for (month in 1:12) {
        url <- paste0(baseUrl, "&reportSelectMonth=", month, "&reportSelectYear=", year)
        p <- read_html(url)
        # do stuff
    } 
}

推荐阅读