1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| doc <- htmlParse("http://www.leboncoin.fr/_loisirs_/offres/ile_de_france/?f=a&th=1")
lien <- xpathSApply (doc,"//div[contains(@class,'list-lbc')]/a",xmlGetAttr,name = "href")
MyTable <- data.frame()
v <- NULL
for (i in 1:length(lien)) {
v[i] <- readHTMLTable(lien[i], head=2)
val <- as.character(v[[i]]$V2)
# un prix, c'est toute valeur commençant par des chiffres et se terminant par
prix <- grep('^[0-9].*[^a-zA-Z0-9]$', val2, perl=T)
if (length(prix)!=0) { MyTable[i,1] <- val[prix] } else {MyTable[i,1] <- NA }
# une ville, c'est tout ce qui commence par des lettres et ne contenant pas de chiffres
# on suppose que les noms des villes depassent au moins 4 carateres, c'est à corriger bien sûr. Mais le souci vient de v[[13]]
vil <- grep('^[a-zA-Z].{4,1000}$', val, perl=T)
if (length(vil)!=0) { MyTable[i,2] <- val[vil] } else {MyTable[i,2] <- NA }
# une code postale: c'est exactement 5 chiffre, sans le signe et sans lettre alphabetiques
cp <- grep('^[0-9]{5}$', val, perl=T)
if (length(cp)!=0) { MyTable[i,3] <- val[cp] } else {MyTable[i,3] <- NA }
}
names(MyTable) <- c("Prix", "Ville", "CodePostale") |
Partager