r - 使用下拉列表抓取历史数据
问题描述
我尝试从https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=reportsSearch.process抓取数据。如您所见,有一个下拉菜单可以调用历史数据。但是,该链接与日期范围无关。因此,我无法创建一个 rvest 循环去相关日期和抓取数据。在这种情况下,如何从该页面获取历史药物批准数据?
解决方案
例如,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
}
}
推荐阅读
- r - 对表格进行排序/排序/排名
- java - Does Google Cloud Speech API save my sound recordings?
- sql - Web 分析 SQL 表设计
- c# - 使用管理员更改 Windows 本地用户密码
- windows - How to obtain keyboard layout for Microsoft Edge and other windows hosted in ApplicationFrameHost.exe
- clojure - How to write a java varg function in clojure?
- python - 使用 boto3 将 csv 导出到 dynamodb
- python - Python 控制台:检测 Ctrl X 按键事件
- sql - 从 SQL 表在 SQL Server 中创建固定长度文件
- dom - 如何获取节点列表中每个元素的innerHTML