【发布时间】:2016-03-21 06:26:07
【问题描述】:
我正在尝试从以下链接中抓取与表 5 对应的数据:https://www.fbi.gov/about-us/cjis/ucr/crime-in-the-u.s/2013/crime-in-the-u.s.-2013/tables/5tabledatadecpdf/table_5_crime_in_the_united_states_by_state_2013.xls
按照建议,我使用 SelectorGadget 查找相关的 CSS 匹配项,我发现包含所有数据(以及一些无关信息)的匹配项是“#page_content”
我尝试了以下代码,但产生了错误:
fbi <- read_html("https://www.fbi.gov/about-us/cjis/ucr/crime-in-the-u.s/2013/crime-in-the-u.s.-2013/tables/5tabledatadecpdf/table_5_crime_in_the_united_states_by_state_2013.xls")
fbi %>%
html_node("#page_content") %>%
html_table()
Error: html_name(x) == "table" is not TRUE
#Try extracting only the first column:
fbi %>%
html_nodes(".group0") %>%
html_table()
Error: html_name(x) == "table" is not TRUE
#Directly feed fbi into html_table
data = fbi %>% html_table(fill = T)
#This output creates a list of 3 elements, where within list 1 and 3, there are many missing values.
任何帮助将不胜感激!
【问题讨论】:
-
有个“下载Excel”按钮,比较简单。
-
否则你可以用
fbi %>% read_html() %>% html_node('table.data') %>% html_table(fill = TRUE)或多或少地得到表,但它不是很漂亮。 -
@alistaire 我同意以 excel 格式下载更简单。但是,我希望其他人通过简单地获取我的 .R 文件来快速复制我的工作,而无需下载数据。
-
所以在指向该文件的链接上调用
download.file,然后用xlxs或XLConnect解析它。
标签: css r web-scraping rvest