我如何从不断更新的网站上抓取信息?

时间:2019-09-06 10:52:48

标签: r web-scraping rvest

我正在尝试获取有关停车场中未占用的停车位的信息。网站上的信息正在不断更新免费停车位的数量。

由于我开始学习使用R进行网络抓取,因此我开始学习基础知识。 因此,我尝试使用代码获取《 IMDB电影年》

url2 <- "https://www.imdb.com/search/title/?count=100&release_date=2016,2016&title_type=feature"
page2 <- read_html(url2)

data2 <- page2 %>%
  html_node(".lister-item-year") %>%
  html_text
data2

此代码运行正常。

现在,我在网站上尝试了有关停车位的相同操作,并且由于HTML代码与上面的示例几乎相同,因此我认为这样做并不难。

url <- "https://www.rosenheim.de/stadt-buerger/verkehr/parken.html"

page <- read_html(url)

data <- page %>%
  html_node('.jwGetFreeParking-8') %>%
  html_text
data

但是,结果我没有得到有关免费停车位的信息。我得到的结果是“”。没事。

是因为第二个网页上的数字不时更新吗?

1 个答案:

答案 0 :(得分:0)

此页面使用javascript呈现,因此您示例中的技术不适用。如果使用浏览器中的开发人员工具并检查“网络”选项卡上加载的文件,则会找到一个名为“ index.php”的文件。这是一个包含停车信息的JSON文件。

下载此文件将提供所需的信息。 {json}库的fromJSON函数将访问该文件并将其转换为数据框。

library(jsonlite)

answer<-fromJSON("https://www.rosenheim.de/index.php?eID=jwParkingGetParkings")
answer

   uid                     title parkings occupied free isOpened link
1    4                   Reserve        0        0  ---    FALSE    0
2    7                   Reserve        0        0  ---    FALSE    0
3   13                   Reserve        0        0  ---    FALSE    0
4   14                   Reserve        0        0  ---    FALSE    0
5    0                P1 Zentrum      257      253    4     TRUE  224
6    1                  P2 KU'KO      138      133    5     TRUE  225
7    2                P3 Rathaus       31       29    2     TRUE  226
8    3                  P4 Mitte      275      275    0     TRUE  227
9    5             P6 Salinplatz      232      148   84     TRUE  228
10   6           P7 Altstadt-Ost       82      108    0     TRUE  229
11  10      P8 Beilhack-Citydome      160      130   30     TRUE  230
12   8            P9 Am Klinikum      426      424    2     TRUE 1053
13   9           P10 Stadtcenter       56       54    2     TRUE  231
14  11 P11 Beilhack-Gießereistr.      155      155  ---    FALSE 1151
15  12          P12 Bahnhof Nord      148       45  103     TRUE 1203
相关问题