提取网络 link 标题以命名列表
Extracting web link titles in order to name lists
我有以下数据:
url = getURL("https://www.fomento.gob.es/be2/?nivel=2&orden=34000000")
parsed <- htmlParse(url)
links <- xpathSApply(parsed,path = "//a", xmlGetAttr, "href")
hrefLinks = xpathSApply(parsed,path = "//a")
xlsLinks <- hrefLinks[grep('.XLS|.xls', links, value = FALSE)]
xlsLinks
这给了我类似的东西:
[[31]]
<a target="_blank" href="sedal/34020150.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3 Valor medio de las transacciones inmobiliarias de vivienda libre</a>
[[32]]
<a target="_blank" href="sedal/34020160.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva</a>
[[33]]
<a target="_blank" href="sedal/34020170.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano</a>
[[34]]
<a target="_blank" href="sedal/34020180.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España</a>
我想提取每个列表链接的“标题”。即对于上述 4 个示例,我想提取:
3.3 Valor medio de las transacciones inmobiliarias de vivienda libre
3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva
3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano
3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España
在完整列表中有 34
个我想提取的类型。它们都对应于扩展名为 xls
的 URLS。这个想法是使用这些值来命名 URLS 列表。
拆分并获得第 3 项:
x <- list(
'<a target="_blank" href="sedal/34020150.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3 Valor medio de las transacciones inmobiliarias de vivienda libre</a>',
'<a target="_blank" href="sedal/34020160.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva</a>',
'<a target="_blank" href="sedal/34020170.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano</a>',
'<a target="_blank" href="sedal/34020180.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España</a>')
sapply(x, function(i) strsplit(i, "[<>]")[[ 1 ]][ 3 ])
# [1] "3.3 Valor medio de las transacciones inmobiliarias de vivienda libre"
# [2] "3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva"
# [3] "3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano"
# [4] "3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España"
您可以使用 rvest,然后使用带有 $ 的 attribute = value css 选择器以运算符结尾来定位所需的元素(添加 parent 元素 id 作为安全网的锚点)。由于 rvest 实现不支持 i
不区分大小写标志,因此您需要提供 OR 语法以满足 href 属性中的 upper/lowercase 子字符串。然后,您可以使用 html_text()
作为返回的 nodeList 的标题。
library(magrittr)
library(rvest)
library(purrr)
url <- "https://www.fomento.gob.es/be2/?nivel=2&orden=34000000"
df <-
map_dfr(
read_html(url) %>%
html_elements('#app_camaleon [href$=".xls"], #app_camaleon [href$=".XLS"]'),
~ data.frame(
title = .x %>% html_text(),
link = .x %>% html_attr("href") %>% url_absolute(url)
)
)
我有以下数据:
url = getURL("https://www.fomento.gob.es/be2/?nivel=2&orden=34000000")
parsed <- htmlParse(url)
links <- xpathSApply(parsed,path = "//a", xmlGetAttr, "href")
hrefLinks = xpathSApply(parsed,path = "//a")
xlsLinks <- hrefLinks[grep('.XLS|.xls', links, value = FALSE)]
xlsLinks
这给了我类似的东西:
[[31]]
<a target="_blank" href="sedal/34020150.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3 Valor medio de las transacciones inmobiliarias de vivienda libre</a>
[[32]]
<a target="_blank" href="sedal/34020160.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva</a>
[[33]]
<a target="_blank" href="sedal/34020170.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano</a>
[[34]]
<a target="_blank" href="sedal/34020180.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España</a>
我想提取每个列表链接的“标题”。即对于上述 4 个示例,我想提取:
3.3 Valor medio de las transacciones inmobiliarias de vivienda libre
3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva
3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano
3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España
在完整列表中有 34
个我想提取的类型。它们都对应于扩展名为 xls
的 URLS。这个想法是使用这些值来命名 URLS 列表。
拆分并获得第 3 项:
x <- list(
'<a target="_blank" href="sedal/34020150.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3 Valor medio de las transacciones inmobiliarias de vivienda libre</a>',
'<a target="_blank" href="sedal/34020160.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva</a>',
'<a target="_blank" href="sedal/34020170.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano</a>',
'<a target="_blank" href="sedal/34020180.XLS" title="Enlace a un archivo con extensión .xls. Este enlace abre una ventana nueva">3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España</a>')
sapply(x, function(i) strsplit(i, "[<>]")[[ 1 ]][ 3 ])
# [1] "3.3 Valor medio de las transacciones inmobiliarias de vivienda libre"
# [2] "3.3.1 Valor medio de las transacciones inmobiliarias de vivienda libre nueva"
# [3] "3.3.2 Valor medio de las transacciones inmobiliarias de vivienda libre de segunda mano"
# [4] "3.4 Valor medio de las transacciones inmobiliarias de vivienda libre de extranjeros residentes en España"
您可以使用 rvest,然后使用带有 $ 的 attribute = value css 选择器以运算符结尾来定位所需的元素(添加 parent 元素 id 作为安全网的锚点)。由于 rvest 实现不支持 i
不区分大小写标志,因此您需要提供 OR 语法以满足 href 属性中的 upper/lowercase 子字符串。然后,您可以使用 html_text()
作为返回的 nodeList 的标题。
library(magrittr)
library(rvest)
library(purrr)
url <- "https://www.fomento.gob.es/be2/?nivel=2&orden=34000000"
df <-
map_dfr(
read_html(url) %>%
html_elements('#app_camaleon [href$=".xls"], #app_camaleon [href$=".XLS"]'),
~ data.frame(
title = .x %>% html_text(),
link = .x %>% html_attr("href") %>% url_absolute(url)
)
)