Rvest:“&书信电报;80%“;在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=""

在试图从一些网站上获取抵押贷款利率时,似乎“只需做一些预处理,以修复非标准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只需进行一些预处理即可修复非标准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:]]+)", "&lt;$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%"