对于我在 R 中进行网络抓取的第一次练习,我试图弄清楚如何搜索正在出售的歌剧门票以最终找到最优惠的价格。我想做两件事:
- 创建一个类别和价格表,以便能够在任何类别中搜索最优惠的价格
- 保存指向最优惠的 http 地址的链接(每个类别的价格)。
我遇到的问题是我只能看到 15 个观察值,但表格可能会更大。
library(rvest)
rmSpace <- function(x){
x<-gsub("\t","",x)
x<-gsub("\n","",x)
}
page <- url %>% html()
date <- page %>%
html_nodes(".date-tabdyn") %>%
html_text()
date <- date[-1]
date <-rmSpace(date)
category <- page %>%
html_nodes(".td_description .bold") %>%
html_text()
category<-rmSpace(category)
description <- page %>%
html_nodes(".td_description") %>%
html_text()
description <- description[-1]
description <- rmSpace(description)
price <- page %>%
html_nodes(".valeur_revente .montant-numeric") %>%
html_text()
price_normal <- page %>%
html_nodes(".valeur_faciale .montant-numeric") %>%
html_text()
links <- page %>% html_nodes(".button_eae9e5") %>% html_attr("onclick")
links <- substr(links,31,nchar(links)-2)
tab <- cbind(category, price, price_normal, date, description, links)
更新:我能够用 rvest 获得一张漂亮的桌子,但我还没有弄清楚如何解决 15 视图限制。
更新 2:似乎有一个返回 json 文件的 POST 请求。我想我可以用它来帮助返回一张更大的桌子,但我不知道如何做到这一点。