Html R刮网困难--为什么可以';我不能从一个多页面的网站上获得所有的挂牌价格吗?

Html R刮网困难--为什么可以';我不能从一个多页面的网站上获得所有的挂牌价格吗?,html,r,loops,web-scraping,rvest,Html,R,Loops,Web Scraping,Rvest,我一直在尝试使用R的rvest软件包从一个房地产网站上搜集数据。我正在尝试的网站有15个页面,总共631个列表。但是,当我使用后面的脚本时,结果是数据帧的值仅略高于360(它似乎从前9页开始计算标价,然后停止)。此外,当我在第一次尝试之后尝试使用完全相同的脚本时,它会用0值替换上一个数据帧。如果我等待30分钟,然后再次使用相同的代码,我将再次获得具有~369个值的原始数据帧。我将在下面包含我的代码: library(rvest) library(purrr) library(httr) libr

我一直在尝试使用R的rvest软件包从一个房地产网站上搜集数据。我正在尝试的网站有15个页面,总共631个列表。但是,当我使用后面的脚本时,结果是数据帧的值仅略高于360(它似乎从前9页开始计算标价,然后停止)。此外,当我在第一次尝试之后尝试使用完全相同的脚本时,它会用0值替换上一个数据帧。如果我等待30分钟,然后再次使用相同的代码,我将再次获得具有~369个值的原始数据帧。我将在下面包含我的代码:

library(rvest)
library(purrr)
library(httr)
library(stringr)

url <- "https://www.realtor.com/soldhomeprices/Boulder_CO/type-single-family-home,multi-family-home/pg%d


boulder_sold <- map_df(1:15, function(i){
  pg <- read_html(sprintf(url, i))
  data.frame(Price = parse_number(html_text(html_nodes(pg, ".data-price"))),
             stringsAsFactors = FALSE)
})
库(rvest)
图书馆(purrr)
图书馆(httr)
图书馆(stringr)

url您的第一个代码块在
url处有输入错误,如您所说,如果网站在两次查询之间经过一段时间后才生成空结果,则(a)在两次查询之间休眠,或(b)查看API订阅,它们不会限制您的查询。提示:如果您打开web浏览器的开发控制台,请查看其中的“网络”选项卡,然后重新加载页面,你会看到一些有趣的东西。如果您寻找“json”数据类型(不太小),这通常用于“数据”。从你的链接(第1页),我发现。。。我相信这是使用cookies来查找您的列表,这表明您需要
html\u会话
,而不仅仅是阅读页面。(未完全测试,但提示您向前迈进)。运行您提供的代码时,我没有收到任何错误。
boulder_sold_break <- map_df(1:15, function(i){
  for(j in i){
    Sys.sleep(5)
    if((i %% 2) == 0){
      message("taking a break")
      Sys.sleep(2)
    }
  }
  pg <- read_html(sprintf(url, i))
  data.frame(Price = parse_number(html_text(html_nodes(pg, ".data-price"))),
             stringsAsFactors = FALSE)
})