首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >房地产的网络抓取[r]

房地产的网络抓取[r]
EN

Stack Overflow用户
提问于 2020-11-10 13:36:22
回答 1查看 326关注 0票数 0

我想自动收集房地产广告网站上的具体数据。我使用了包tidyversejsonlite作为起点。使用这些,我能够收集我感兴趣的东西在一定程度上。

让我们使用这个庄园网页:https://www.sreality.cz/hledani/prodej/byty

代码语言:javascript
复制
# Libraries -----------------------------------------------------------------------------------
library(jsonlite)
library(tidyverse)

# Web Page of Estates: https://www.sreality.cz/hledani/prodej/byty/praha

# Select one region
id = 10

A = paste0("https://www.sreality.cz/api/cs/v2/estates?category_main_cb=1&category_type_cb=1&locality_region_id=", id, "&page=")
B= paste("&per_page=40&tms=1583500044717")
C = paste0(A,1,B)
D = fromJSON(C)


Res <- 
  D$`_embedded`$estates %>% 
  mutate(D$`_embedded`$estates$hash_id) %>% 
  as_data_frame()

Res %>% view()

通过这种方式,Res对象包含了价格等基本感兴趣的信息,也可以利用正则表达式获得房间数等信息。然而,也有一些信息是我被遗漏的,如Floor (Podlaží)、Type of ownership (Vlastnictví)等。

让抢掠一个皮毛产业

代码语言:javascript
复制
Res$hash_id[1]

将返回房地产ID号码,然后我们可以谷歌此提供使用ID。

我们会找到以下一页:

https://www.sreality.cz/detail/prodej/byt/2+kk/praha-praha-4-milevska/822296156#img=0&fullscreen=false

在这里我们可以看到关于地板的信息(Podlaží:5. podlaží)可以使用。然而,在D对象中,没有关于地板(podlaží)的信息,也没有关于“Vlastnictví”的信息。我也希望能够搜集所有房地产的相关信息。有没有办法在R中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-10 15:34:48

需要额外的API调用才能获得所需的数据。每个hash_id的新URL是

代码语言:javascript
复制
https://www.sreality.cz/api/cs/v2/estates/<hash_id>?tms=<timestamp>

考虑一下这个工作流

代码语言:javascript
复制
mas_url <- "https://www.sreality.cz"

get_links <- function(url, id, page) {
  tmp <- paste0(
    url, 
    "/api/cs/v2/estates?category_main_cb=1&category_type_cb=1&locality_region_id=", id, 
    "&page=", page, 
    "&per_page=40&tms=1583500044717"
  )
  links <- jsonlite::fromJSON(tmp)$`_embedded`$estates$hash_id
  tms <- as.character(round(as.double(Sys.time())*1000))
  paste0(url, "/api/cs/v2/estates/", links, "?tms=", tms)
}

# I only scraped three websites for test
res <- lapply(get_links(mas_url, 10, 1)[10:12], jsonlite::fromJSON)

列表res中的每个元素对应于一个遗产。例如,您需要的信息可以在

代码语言:javascript
复制
res[[1L]]$items

输出

代码语言:javascript
复制
   negotiation                   name   notes                 value currency      type          unit topped
1        FALSE           Celková cena bez DPH             8 950 400       Kc price_czk za nemovitost     NA
2           NA             ID zakázky    NULL                  D401     <NA>    string          <NA>     NA
3           NA            Aktualizace    NULL                  Dnes     <NA>    edited          <NA>   TRUE
4           NA                 Stavba    NULL               Cihlová     <NA>    string          <NA>     NA
5           NA           Stav objektu    NULL            Novostavba     <NA>    string          <NA>     NA
6           NA            Vlastnictví    NULL                Osobní     <NA>    string          <NA>     NA
7           NA       Umístení objektu    NULL          Centrum obce     <NA>    string          <NA>     NA
8           NA                Podlaží    NULL 4. podlaží z celkem 5     <NA>    string          <NA>     NA
9           NA          Užitná plocha    NULL                    77     <NA>      area            m2     NA
10          NA       Plocha podlahová    NULL                    83     <NA>      area            m2     NA
11          NA                 Terasa    NULL                  TRUE     <NA>   boolean          <NA>     NA
12          NA                  Sklep    NULL                  TRUE     <NA>   boolean          <NA>     NA
13          NA                  Garáž    NULL                  TRUE     <NA>   boolean          <NA>     NA
14          NA      Datum nastehování    NULL            30.01.2023     <NA>      date          <NA>     NA
15          NA Datum zahájení prodeje    NULL            01.08.2020     <NA>      date          <NA>     NA
16          NA                  Výtah    NULL                  TRUE     <NA>   boolean          <NA>     NA
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64769977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档