我正在嘗試從 R 中的網站收集一些鏈接。我只想在頁腳中收集以下鏈接框。
Viviendas en venta en Artigues - Llefià
Viviendas en venta en Salut - Lloreda
Viviendas en venta en Gorg - Progrés
Viviendas en venta en Bonavista - Bufalà - Morera
Viviendas en venta en Montigalà - Sant Crist
Viviendas en venta en Centre Badalona
Viviendas en venta en Port
Viviendas en venta en Canyet - Pomar
Viviendas en venta en Casagemes - Canyadó
我可以運行以下命令:
library(rvest)
webpage = "https://www.fotocasa.es/es/comprar/viviendas/badalona/todas-las-zonas/l" %>%
read_html()
webpage %>%
html_nodes(".re-SharedSeoFooter-layout.re-SharedSeoFooter-layout--column") %>%
html_nodes(".re-SharedSeoFooter-nav")
但我只想要“Viviendas en Badalona”的物品,而不想要其他物品。最好我想將頁腳中的 3 列過濾為類似contains("Viviendas en")
跑步:
webpage %>%
html_nodes(".re-SharedSeoFooter-layout.re-SharedSeoFooter-layout--column") %>%
html_nodes(".re-SharedSeoFooter-nav") %>%
#html_nodes(".sui-MoleculeCollapsible") %>%
html_nodes(".sui-ListLink") %>%
html_nodes(".sui-ListLink-item") %>%
html_nodes(".sui-LinkBasic")
給我所有專案,但我無法區分頁腳中的 3 列:
Encuentra más inmuebles en Badalona,Viviendas cerca de Badalona和Viviendas en Badalona.
關于如何拆分這 3 種型別的資料的任何幫助都會很棒。如果我可以像下面這樣刮它:
contains("Encuentra más inmuebles en")
contains("Viviendas cerca de")
contains("Viviendas en")
(因為地名會改變,但基本文本不會改變)。
uj5u.com熱心網友回復:
這是你想要的嗎?這些是您列出的內容的鏈接
library(rvest)
library(tidyverse)
tibble(
locations = "https://www.fotocasa.es/es/comprar/viviendas/badalona/todas-las-zonas/l" %>%
read_html() %>%
html_elements(".re-SharedSeoFooter-layout--column~ .re-SharedSeoFooter-layout--column .re-SharedSeoFooter-layout--column .sui-LinkBasic") %>%
html_text2(),
links = "https://www.fotocasa.es/es/comprar/viviendas/badalona/todas-las-zonas/l" %>%
read_html() %>%
html_elements(".re-SharedSeoFooter-layout--column~ .re-SharedSeoFooter-layout--column .re-SharedSeoFooter-layout--column .sui-LinkBasic") %>%
html_attr("href") %>%
paste0("https://www.fotocasa.es/", .)
)
# A tibble: 9 x 2
locations links
<chr> <chr>
1 Viviendas en venta en Artigues - Llefià https://www.fotocasa.es//es/c~
2 Viviendas en venta en Salut - Lloreda https://www.fotocasa.es//es/c~
3 Viviendas en venta en Gorg - Progrés https://www.fotocasa.es//es/c~
4 Viviendas en venta en Bonavista - Bufalà - Morera https://www.fotocasa.es//es/c~
5 Viviendas en venta en Montigalà - Sant Crist https://www.fotocasa.es//es/c~
6 Viviendas en venta en Centre Badalona https://www.fotocasa.es//es/c~
7 Viviendas en venta en Port https://www.fotocasa.es//es/c~
8 Viviendas en venta en Canyet - Pomar https://www.fotocasa.es//es/c~
9 Viviendas en venta en Casagemes - Canyadó https://www.fotocasa.es//es/c~
uj5u.com熱心網友回復:
要回答您提出的問題,您可以使用 :contains 來定位 h2 標記文本,但需要向上移動到父部分,因此使用 xpath,然后向下移動到子錨標記以提取感興趣的 url:
library(rvest)
library(magrittr)
url <- "https://www.fotocasa.es/es/comprar/viviendas/badalona/todas-las-zonas/l"
links <- url %>%
read_html() %>%
html_elements(xpath = '//h2[contains(., "Viviendas en ")]/parent::section//a') %>%
html_attr('href') %>%
url_absolute(url)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/488560.html
