gpt4 book ai didi

r - 网页抓取多页问题

转载 作者:行者123 更新时间:2023-12-04 09:49:34 25 4
gpt4 key购买 nike

我正在尝试使用 R 代码从以下站点抓取前 4 页用于教育目的:

https://www.boliga.dk/salg/resultater?searchTab=1&page=3&sort=date-d&zipcodeFrom=1000&zipcodeTo=2499&street=

{r}
library(rvest)
library(purrr)
library(tidyverse)

url_base <- "https://www.boliga.dk/salg/resultater?searchTab=1&page=%d&sort=date-d&zipcodeFrom=1000&zipcodeTo=2499&street="

map_df(1:4,function(i){
page <- read_html(sprintf(url_base,i))

data.frame(Address = html_text(html_nodes(page,".font-weight-bolder.text-left")))
}) -> Address_map
View(Address_map)


此代码的唯一问题是它实际上并未向我显示前 4 页,而是向我提供了四次第一页。

我希望你能帮助解决这个小问题。

最佳答案

该页面使用javascript调用API,可以访问JSON格式的数据,第一页是这样的:jsonlite::fromJSON("https://api.boliga.dk/api/v2/sold/search/results?searchTab=1&page=1&sort=date-d&zipcodeFrom=1000&zipcodeTo=2499&street=")
要将所有 4 页放在一起,请尝试以下操作:

library(dplyr)
library(jsonlite)

url_base <- "https://api.boliga.dk/api/v2/sold/search/results?searchTab=1&page=%d&sort=date-d&zipcodeFrom=1000&zipcodeTo=2499&street="

Address_map <-lapply(1:4,function(i){
print(i)
# pause to prevent attacking the server
Sys.sleep(2)
#retrieve the results data frame from the returned data structure
fromJSON(sprintf(url_base, i))$result
})

#bind everything together
answer <- bind_rows(Address_map)

关于r - 网页抓取多页问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62028696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com