Extracting/scraping table 来自网站 - 跳过 table / 我想要的信息
Extracting/scraping table from website - skipping over the table / information I want
我正在尝试从网站中提取一些信息。
url <- "url <- "http://www.infocif.es/ficha-empresa/banco-santander-sa""
html <- url %>%
read_html() %>%
html_nodes("table") %>%
html_table(fill = TRUE)
html %>% .[[1]]
我当前的代码给出了以下内容:
RNK Razón Social Ventas
1 NA 17 IBERDROLA GENERACION ESPAÑA SA 7.411.891
2 NA 18 GAS NATURAL COMERCIALIZADORA SA 6.280.546
3 NA 19 MERCEDES-BENZ ESPAÑA SA 5.542.579
我最感兴趣的table是标题下的"first":Información de la compañía
。
我应用 readHTMLTable(url)
时得到相同的结果。那么,我要请求的实际上不是 table 吗?
以下将提取列表中的所有表:
library(rvest)
url <- "http://www.infocif.es/ficha-empresa/banco-santander-sa"
list_of_tables <- url %>%
read_html() %>%
html_nodes("table") %>%
html_table(fill = TRUE)
如果你只想要第一个,你可以用 [[
:
像往常一样提取它
list_of_tables[[1]]
但是...我认为这不是您想要的。如果你真的想要来自Informacion de la compania
的元素,我认为你需要从那个ID中提取元素:
text <- url %>%
read_html() %>%
html_nodes("#fe-informacion-izq .col-xs-12") %>%
html_text() %>%
# Clean-up the non-conforming text and special characters
str_squish() %>%
# special case for Domicillo
str_remove(pattern = "\s\{.*\}")
names <- text[c(TRUE, FALSE)]
elements <- text[c(FALSE, TRUE)]
tibble(names, elements)
# A tibble: 11 x 2
names elements
<chr> <chr>
1 CIF A39000013
2 Antigüedad 163 años (21/03/1857)
3 Domicilio Po Pereda 9-12 39004 - (Santander) - Cantabria
4 Teléfono 912737006
5 Registro Registro Mercantil de Madrid
6 Web www.bancosantander.es
7 Anterior Denominación: BANCO SANTANDER CENTRAL HISPANO SA
8 Sector Intermediarios financieros
9 Nº de empleados -
10 Cargos directivos - Presidente BOTIN SANZSAUTUOLA O'SHEA ANA PATRICIA Ver más
11 Matriz -
我正在尝试从网站中提取一些信息。
url <- "url <- "http://www.infocif.es/ficha-empresa/banco-santander-sa""
html <- url %>%
read_html() %>%
html_nodes("table") %>%
html_table(fill = TRUE)
html %>% .[[1]]
我当前的代码给出了以下内容:
RNK Razón Social Ventas
1 NA 17 IBERDROLA GENERACION ESPAÑA SA 7.411.891
2 NA 18 GAS NATURAL COMERCIALIZADORA SA 6.280.546
3 NA 19 MERCEDES-BENZ ESPAÑA SA 5.542.579
我最感兴趣的table是标题下的"first":Información de la compañía
。
我应用 readHTMLTable(url)
时得到相同的结果。那么,我要请求的实际上不是 table 吗?
以下将提取列表中的所有表:
library(rvest)
url <- "http://www.infocif.es/ficha-empresa/banco-santander-sa"
list_of_tables <- url %>%
read_html() %>%
html_nodes("table") %>%
html_table(fill = TRUE)
如果你只想要第一个,你可以用 [[
:
list_of_tables[[1]]
但是...我认为这不是您想要的。如果你真的想要来自Informacion de la compania
的元素,我认为你需要从那个ID中提取元素:
text <- url %>%
read_html() %>%
html_nodes("#fe-informacion-izq .col-xs-12") %>%
html_text() %>%
# Clean-up the non-conforming text and special characters
str_squish() %>%
# special case for Domicillo
str_remove(pattern = "\s\{.*\}")
names <- text[c(TRUE, FALSE)]
elements <- text[c(FALSE, TRUE)]
tibble(names, elements)
# A tibble: 11 x 2
names elements
<chr> <chr>
1 CIF A39000013
2 Antigüedad 163 años (21/03/1857)
3 Domicilio Po Pereda 9-12 39004 - (Santander) - Cantabria
4 Teléfono 912737006
5 Registro Registro Mercantil de Madrid
6 Web www.bancosantander.es
7 Anterior Denominación: BANCO SANTANDER CENTRAL HISPANO SA
8 Sector Intermediarios financieros
9 Nº de empleados -
10 Cargos directivos - Presidente BOTIN SANZSAUTUOLA O'SHEA ANA PATRICIA Ver más
11 Matriz -