Rvest:“&书信电报;80%“;在html文本中生成解析错误
在试图从一些网站上获取抵押贷款利率时,似乎“只需做一些预处理,以修复非标准HTML:Rvest:“&书信电报;80%“;在html文本中生成解析错误,r,rvest,R,Rvest,在试图从一些网站上获取抵押贷款利率时,似乎“只需做一些预处理,以修复非标准HTML: library(rvest) library(stringi) url <- "https://vdvconseil.be/nl/hypothecaire-leningen/bereken-uw-hypothecaire-lening/" doc <- readLines(url) 现在回到阅读和处理文档: page <- read_html(paste0(doc, collapse=""
library(rvest)
library(stringi)
url <- "https://vdvconseil.be/nl/hypothecaire-leningen/bereken-uw-hypothecaire-lening/"
doc <- readLines(url)
现在回到阅读和处理文档:
page <- read_html(paste0(doc, collapse=""))
opt <- page %>% html_nodes("option")
html_text(opt)
## [1] "1/1/1 CAP 1,56 (voorwaarden) +1,56/-1,56 Q:<85% T:1,56%"
## [2] "1/1/1 cap 1,74 (voorwaarden) +1,74/-1,74 Q:Tot 80% T:1,74%"
## [3] "5/5/5 cap 1,51 (voorwaarden) +1,51/-1,51 Q:<85% T:1,51%"
## [4] "5/5/5 cap 1,67 (voorwaarden) +1,67/-1,67 Q:\t\t\t\t\t\t\t\t\t\t\t"
## [5] "10/5/5 (voorwaarden) +1,95/-1,95 Q:<85% T:1,95%"
## [6] "10/5/5 (voorwaarden) +1,96/-1,96 Q:<80% T:1,96%"
## [7] "10/5/5(Voorwarden) +2/-2,11 Q:80 à 100% T:2,11%"
## [8] "Vast 10 jaar (voorwaarden) Q:<85% T:1,44%"
## [9] "Vast 10 jaar (voorwaarden) Q:<80% T:1,47%"
## [10] "Fxed 10 yaar (voorwaarden) Q:<90% T:1,60%"
## [11] "Vast 10 jaar Q:80 à 100% T:1,62%"
## [12] "Vast 13 jaar (voorwaarden) Q:<80% T:1,63%"
## [13] "Vast 13 jaar (voorwaarden) Q:80 à 100% T:1,78%"
## [14] "Vaste maandelijkse accordion 15-18 jaar Q:<80% T:1,58%"
## [15] "Vaste maandelijkse accordion 15-18 jaar Q:<100% T:1,73%"
## [16] "Vast 15 jaar (voorwaarden) Q:<85% T:1,81%"
## [17] "Vast 15 jaar (voorwaarden) Q:<80% T:1,86%"
## [18] "Vaast 15 jaar (voorwaarden) Q:<90% T:1,89%"
## [19] "Vast 15 jaar (voorwaarden) Q:80 à 100% T:2,01%"
## [20] "Vast 17 jaar (voorwaarden) Q:<90% T:1,97%"
## [21] "Vast 18 jaar (voorwaarden) Q:<80% T:2,00%"
## [22] "Vast 18 jaar (voorwaarden) Q:<85% T:2,03%"
## [23] "Vast 18 jaar (voorwaarden) Q:<100% T:2,14%"
## [24] "Vaste maandelijkse accordéon 20-25 jaar Q:<80 % T:1,79%"
## [25] "Vaste maandelijkse accordéon 20-25 jaar Q:80 à 100% T:1,94%"
## [26] "Vast 20 jaar (voorwaarden) Q:<85% T:2,03%"
## [27] "Vaast 20 jaar (voorwaarden) Q:<90% T:2,10%"
## [28] "Vast 20 jaar (voorwaarden) Q:<80% T:2,14%"
## [29] "Vast 20 jaar (voorwaarden) Q:80 à 100% T:2,29%"
## [30] "Vast 22 jaar Q:<90% T:2,23%"
## [31] "Mensualités fixes accordéon 25-30 ans Q:<80 % T:1,96%"
## [32] "Vaste maandelijkse accordéon 20-25 jaar Q:80 à 100% T:2,11%"
## [33] "Vast 25 jaar (voorwaarden) Q:<80% T:2,28%"
## [34] "Vast 25 jaar (voorwaarden) Q:<90% T:2,32%"
## [35] "Vast 25 jaar (voorwaarden) Q:<85% T:2,36%"
## [36] "Vast 25 jaar (voorwaarden) Q:80 à 100% T:2,43%"
## [37] "Vast 30 jaar Q:<100% T:2,88%"
## [38] "Vast 30 jaar (voorwaarden) Q:<95% T:3,10%"
page只需进行一些预处理即可修复非标准HTML:
library(rvest)
library(stringi)
url <- "https://vdvconseil.be/nl/hypothecaire-leningen/bereken-uw-hypothecaire-lening/"
doc <- readLines(url)
现在回到阅读和处理文档:
page <- read_html(paste0(doc, collapse=""))
opt <- page %>% html_nodes("option")
html_text(opt)
## [1] "1/1/1 CAP 1,56 (voorwaarden) +1,56/-1,56 Q:<85% T:1,56%"
## [2] "1/1/1 cap 1,74 (voorwaarden) +1,74/-1,74 Q:Tot 80% T:1,74%"
## [3] "5/5/5 cap 1,51 (voorwaarden) +1,51/-1,51 Q:<85% T:1,51%"
## [4] "5/5/5 cap 1,67 (voorwaarden) +1,67/-1,67 Q:\t\t\t\t\t\t\t\t\t\t\t"
## [5] "10/5/5 (voorwaarden) +1,95/-1,95 Q:<85% T:1,95%"
## [6] "10/5/5 (voorwaarden) +1,96/-1,96 Q:<80% T:1,96%"
## [7] "10/5/5(Voorwarden) +2/-2,11 Q:80 à 100% T:2,11%"
## [8] "Vast 10 jaar (voorwaarden) Q:<85% T:1,44%"
## [9] "Vast 10 jaar (voorwaarden) Q:<80% T:1,47%"
## [10] "Fxed 10 yaar (voorwaarden) Q:<90% T:1,60%"
## [11] "Vast 10 jaar Q:80 à 100% T:1,62%"
## [12] "Vast 13 jaar (voorwaarden) Q:<80% T:1,63%"
## [13] "Vast 13 jaar (voorwaarden) Q:80 à 100% T:1,78%"
## [14] "Vaste maandelijkse accordion 15-18 jaar Q:<80% T:1,58%"
## [15] "Vaste maandelijkse accordion 15-18 jaar Q:<100% T:1,73%"
## [16] "Vast 15 jaar (voorwaarden) Q:<85% T:1,81%"
## [17] "Vast 15 jaar (voorwaarden) Q:<80% T:1,86%"
## [18] "Vaast 15 jaar (voorwaarden) Q:<90% T:1,89%"
## [19] "Vast 15 jaar (voorwaarden) Q:80 à 100% T:2,01%"
## [20] "Vast 17 jaar (voorwaarden) Q:<90% T:1,97%"
## [21] "Vast 18 jaar (voorwaarden) Q:<80% T:2,00%"
## [22] "Vast 18 jaar (voorwaarden) Q:<85% T:2,03%"
## [23] "Vast 18 jaar (voorwaarden) Q:<100% T:2,14%"
## [24] "Vaste maandelijkse accordéon 20-25 jaar Q:<80 % T:1,79%"
## [25] "Vaste maandelijkse accordéon 20-25 jaar Q:80 à 100% T:1,94%"
## [26] "Vast 20 jaar (voorwaarden) Q:<85% T:2,03%"
## [27] "Vaast 20 jaar (voorwaarden) Q:<90% T:2,10%"
## [28] "Vast 20 jaar (voorwaarden) Q:<80% T:2,14%"
## [29] "Vast 20 jaar (voorwaarden) Q:80 à 100% T:2,29%"
## [30] "Vast 22 jaar Q:<90% T:2,23%"
## [31] "Mensualités fixes accordéon 25-30 ans Q:<80 % T:1,96%"
## [32] "Vaste maandelijkse accordéon 20-25 jaar Q:80 à 100% T:2,11%"
## [33] "Vast 25 jaar (voorwaarden) Q:<80% T:2,28%"
## [34] "Vast 25 jaar (voorwaarden) Q:<90% T:2,32%"
## [35] "Vast 25 jaar (voorwaarden) Q:<85% T:2,36%"
## [36] "Vast 25 jaar (voorwaarden) Q:80 à 100% T:2,43%"
## [37] "Vast 30 jaar Q:<100% T:2,88%"
## [38] "Vast 30 jaar (voorwaarden) Q:<95% T:3,10%"
page非常感谢!为了完整性,在“[:digit:]”之后添加“\\p{WHITE\u SPACE}”将处理空白。非常感谢!为了完整性,在“[:digit:]”之后添加“\\p{WHITE\u SPACE}”将处理空白
doc[which(grepl("<option", doc))] <-
stri_replace_all_regex(doc[which(grepl("<option", doc))],
"<([[:digit:]]+)", "<$1")
page <- read_html(paste0(doc, collapse=""))
opt <- page %>% html_nodes("option")
html_text(opt)
## [1] "1/1/1 CAP 1,56 (voorwaarden) +1,56/-1,56 Q:<85% T:1,56%"
## [2] "1/1/1 cap 1,74 (voorwaarden) +1,74/-1,74 Q:Tot 80% T:1,74%"
## [3] "5/5/5 cap 1,51 (voorwaarden) +1,51/-1,51 Q:<85% T:1,51%"
## [4] "5/5/5 cap 1,67 (voorwaarden) +1,67/-1,67 Q:\t\t\t\t\t\t\t\t\t\t\t"
## [5] "10/5/5 (voorwaarden) +1,95/-1,95 Q:<85% T:1,95%"
## [6] "10/5/5 (voorwaarden) +1,96/-1,96 Q:<80% T:1,96%"
## [7] "10/5/5(Voorwarden) +2/-2,11 Q:80 à 100% T:2,11%"
## [8] "Vast 10 jaar (voorwaarden) Q:<85% T:1,44%"
## [9] "Vast 10 jaar (voorwaarden) Q:<80% T:1,47%"
## [10] "Fxed 10 yaar (voorwaarden) Q:<90% T:1,60%"
## [11] "Vast 10 jaar Q:80 à 100% T:1,62%"
## [12] "Vast 13 jaar (voorwaarden) Q:<80% T:1,63%"
## [13] "Vast 13 jaar (voorwaarden) Q:80 à 100% T:1,78%"
## [14] "Vaste maandelijkse accordion 15-18 jaar Q:<80% T:1,58%"
## [15] "Vaste maandelijkse accordion 15-18 jaar Q:<100% T:1,73%"
## [16] "Vast 15 jaar (voorwaarden) Q:<85% T:1,81%"
## [17] "Vast 15 jaar (voorwaarden) Q:<80% T:1,86%"
## [18] "Vaast 15 jaar (voorwaarden) Q:<90% T:1,89%"
## [19] "Vast 15 jaar (voorwaarden) Q:80 à 100% T:2,01%"
## [20] "Vast 17 jaar (voorwaarden) Q:<90% T:1,97%"
## [21] "Vast 18 jaar (voorwaarden) Q:<80% T:2,00%"
## [22] "Vast 18 jaar (voorwaarden) Q:<85% T:2,03%"
## [23] "Vast 18 jaar (voorwaarden) Q:<100% T:2,14%"
## [24] "Vaste maandelijkse accordéon 20-25 jaar Q:<80 % T:1,79%"
## [25] "Vaste maandelijkse accordéon 20-25 jaar Q:80 à 100% T:1,94%"
## [26] "Vast 20 jaar (voorwaarden) Q:<85% T:2,03%"
## [27] "Vaast 20 jaar (voorwaarden) Q:<90% T:2,10%"
## [28] "Vast 20 jaar (voorwaarden) Q:<80% T:2,14%"
## [29] "Vast 20 jaar (voorwaarden) Q:80 à 100% T:2,29%"
## [30] "Vast 22 jaar Q:<90% T:2,23%"
## [31] "Mensualités fixes accordéon 25-30 ans Q:<80 % T:1,96%"
## [32] "Vaste maandelijkse accordéon 20-25 jaar Q:80 à 100% T:2,11%"
## [33] "Vast 25 jaar (voorwaarden) Q:<80% T:2,28%"
## [34] "Vast 25 jaar (voorwaarden) Q:<90% T:2,32%"
## [35] "Vast 25 jaar (voorwaarden) Q:<85% T:2,36%"
## [36] "Vast 25 jaar (voorwaarden) Q:80 à 100% T:2,43%"
## [37] "Vast 30 jaar Q:<100% T:2,88%"
## [38] "Vast 30 jaar (voorwaarden) Q:<95% T:3,10%"