从 R 中的网页抓取链接

Webscraping of links from a web page in R

我还想获得属性的链接 - 但出于某种原因,我没有从每个页面获得所有链接,此代码有效但仅适用于 第一页 .关于 link 提取,我缺少什么?

# To get $rooms, $m2, $price, $link
library(rvest)
library(dplyr)

flat_I = data.frame()

for (i in 7:100) {
  link <- paste0("https://www.immobilienscout24.at/regional/wien/wien/immobilie-kaufen/seite-", i)
  page <- read_html(link)
  
  #parse out the parent nodes
  results <- page %>% html_elements(".DHILY")
  
  #retrieve the rooms, m2 and price from each parent
  rooms <- results %>% html_element(".ufaLY:nth-child(1)") %>%
    html_text()
  
  m2 <- results %>% html_element(".ufaLY:nth-child(2)") %>%
    html_text()
  
  price <- results %>% html_element(".tSnnN") %>%
    html_text()
  
  link <- page %>% 
    html_nodes("a._aOSG") %>% 
    html_attr("href") %>% 
    paste0("https://www.immobilienscout24.at", ., sep="")
  
  flat_I = rbind(flat_I, data.frame(rooms, m2, price, link, stringsAsFactors = FALSE))
  print(paste("Page:", i))
  
}

链接位于两个 类 s5PQFYXjuW 中,我们可以单独从它们中提取链接,或者从页面中获取所有链接并过滤它们以仅保留所需的链接。

此外,您在循环中定义了两次 link,避免此类重复。

library(stringr)

page %>% html_nodes('a') %>% 
    html_attr('href') %>% unique() %>% 
    str_subset('expose')