-2

我正在研究波哥大的房价;但是,我在尝试抓取此网页时遇到了一些问题:

https://www.metrocuadrado.com/casa/venta/usado/bogota/teusaquillo/?search=form

我需要网络抓取的数据是'post_name''price''area''rooms'和'restrooms'。我正在使用 SelectorGadget 来识别 HTML 路径。

我正在使用此代码(对不起,如果有任何错误,我是新手):

library(rvest)
library(dplyr)

page <- read_html("https://www.metrocuadrado.com/casa/venta/usado/bogota/teusaquillo/?search=form")
name <- page %>%  html_nodes(".card-title div") %>% html_text()
name

控制台中的结果是: character(0)

名称中没有信息

我也试过这个:

 name <- page %>%  html_nodes("sc-dxgOiQ BSoGx") %>% html_text()

和这个:

 name <- page %>%  html_nodes("sc-dxgOiQ BSoGx card-title") %>% html_text()

和这个:

  name <- page %>%  html_nodes("#__next > div > div > div.Layout__LayoutStyled-sc-9y7jis-0.ibZBWk.page-container > div.Container-u38a83-0.jDuhNh.inner-container.container > div:nth-child(2) > div.Col-sc-14ninbu-0.lfGZKA.col-md-8.col-lg-9 > ul.Ul-sctud2-0.jyGHXP.realestate-results-list.browse-results-list > li:nth-child(1) > div > ul > li:nth-child(2) > div.card-header > a > h2") %>% html_text()

但在所有情况下,结果都是: 字符(0)

我不知道发生了什么,我不擅长 HTML 语言。我正在阅读一些关于它的帖子,在所有这些帖子中,都没有明确的原因说明发生了什么,以及如果将来发生该问题我们将如何处理。

也许问题出在网页上,如果我在导航器中复制并粘贴该页面,则不会出现相同的信息。我正在按房屋(casas)、购买二手(compra usado)、Teusaquillo(波哥大特区)过滤房产。

4

1 回答 1

0

如果网站是基于 Javascript 构建的,则需要显式加载网页。Rvest 无法使用read_html()函数获取该信息。这是一个加载 Firefox 并提取所需信息的片段。

# load libraries
library(RSelenium)
library(rvest)

# open browser
selCommand <- wdman::selenium(jvmargs = c("-Dwebdriver.chrome.verboseLogging=true"), retcommand = TRUE)
Sys.sleep(2)
shell(selCommand, wait = FALSE, minimized = TRUE)
Sys.sleep(2)
remdr <- remoteDriver(port = 4567L, browserName = "firefox")
Sys.sleep(10)
remdr$open()

# navigate to the link
remdr$navigate(url = 'https://www.metrocuadrado.com/casa/venta/usado/bogota/teusaquillo/?search=form')

# read page source
pgSrc <- remdr$getPageSource()
page <- read_html(pgSrc[[1]])

# extract required data
name <- page %>%  html_nodes(".card-title div") %>% html_text()

我们检查时的输出是列出的房屋名称

> head(name)
[1] "Casa en Arriendo, Suba La Campiña, Bogotá D.C."     
[2] "Casa en Venta, Conjunto Oikos Savanna, Cajicá"      
[3] "Casa en Venta, CIUDAD 2000, Cali"                   
[4] "Casa en Venta, Palo De Agua, Cota (Incluye Siberia)"
[5] "Casa en Venta, Calahorra, Cajicá"                   
[6] "Casa en Venta, Calahorra, Cajicá"
于 2022-02-15T14:38:33.927 回答