2016-06-16 8 views
3

Ich versuche, this Tabelle aus Wikipedia zu bekommen. Die Quelle der Datei clamis es ist UTF-8:R repest Codierung Fehler mit UTF-8

> <!DOCTYPE html> <html lang="en" dir="ltr" class="client-nojs"> <head> 
> <meta charset="UTF-8"/> <title>List of cities in Colombia - Wikipedia, 
> the free encyclopedia</title> 
> ... 

Allerdings, wenn ich versuche, den Tisch zu bekommen mit rvest es seltsame Zeichen zeigt, wo es soll (Standard spanisch) diejenigen wie á betont werden, é etc. Dies ist, was ich versucht:

theurl <- "https://en.wikipedia.org/wiki/List_of_cities_in_Colombia" 
file <- read_html(theurl, encoding = "UTF-8") 
tables <- html_nodes(file, "table") 
pop <- html_table(tables[[2]]) 
head(pop) 

## No.   City Population   Department 
## 1 1  Bogotá 6.840.116  Cundinamarca 
## 2 2 Medellín 2.214.494   Antioquia 
## 3 3   Cali 2.119.908 Valle del Cauca 
## 4 4 Barranquilla 1.146.359   Atlántico 
## 5 5 Cartagena 892.545   Bolívar 
## 6 6  Cúcuta 587.676 Norte de Santander 

habe ich versucht, die Codierung zu reparieren, wie in anderen sO Fragen vorgeschlagen, mit:

repair_encoding(pop) 

## Best guess: UTF-8 (100% confident) 
## Error in stringi::stri_conv(x, from = from) : 
## all elements in `str` should be a raw vectors 

ich habe testeten mehrere verschiedene Kodierungen (latin1 und andere, die von guess_encoding() zur Verfügung gestellt wurden, aber alle von ihnen produzieren ähnlich falsche Ergebnisse.

Wie kann ich diese Tabelle richtig laden?

Antwort

3

Es sieht aus wie Sie repair_encoding auf einem Zeichen Vektor verwenden, nicht einen ganzer Datenrahmen ...

> repair_encoding(head(pop[,2])) 
Best guess: UTF-8 (80% confident) 
[1] "Bogotá"  "Medellín"  "Cali"   "Barranquilla" 
[5] "Cartagena" "Cúcuta"