2017-12-06 31 views
2

rvestパッケージを使用してフランス語ウェブサイトをスクラップしています。rvestでWebスクレイピングするときのフランス語のユニコードの乱れ

library(rvest) 
url <- "https://www.vins-bourgogne.fr/nos-vins-nos-terroirs/tous-les-bourgognes/toutes-les-appellations-de-bourgogne-a-votre-portee,2378,9172.html?&args=Y29tcF9pZD0xMzg2JmFjdGlvbj12aWV3RnVsbExpc3RlJmlkPSZ8" 
s <- read_html(url) 
s %>% html_nodes('#resultatListeAppellation .lien') %>% html_text() 

私が見ることを期待:のソースHTML

"Aloxe-Corton (Appellation Village, VIGNOBLE DE LA CÃ\u0094TE DE BEAUNE)"   
"Auxey-Duresses (Appellation Village, VIGNOBLE DE LA CÃ\u0094TE DE BEAUNE)"  
"Bâtard-Montrachet (Appellation Grand Cru, VIGNOBLE DE LA CÃ\u0094TE DE BEAUNE)" 

Aloxe-Corton (Appellation Village, VIGNOBLE DE LA CÔTE DE BEAUNE) 
Auxey-Duresses (Appellation Village, VIGNOBLE DE LA CÔTE DE BEAUNE) 
Bâtard-Montrachet (Appellation Grand Cru, VIGNOBLE DE LA CÔTE DE BEAUNE) 

を代わりに、私は台無しに分音文字を(下の3行目)を参照してくださいページにutf-8でエンコードされていることが示されています。 html_text()でguess_encoding()を使用すると、utf-8(1.00 confidence)、またはwindows-1252(0.73 confidence)を示唆しています。窓-1252へのエンコーディングを変更すると、問題を助けていません:

"Aloxe-Corton (Appellation Village, VIGNOBLE DE LA CÔTE DE BEAUNE)"                     
"Auxey-Duresses (Appellation Village, VIGNOBLE DE LA CÔTE DE BEAUNE)"                    
"Bâtard-Montrachet (Appellation Grand Cru, VIGNOBLE DE LA CÔTE DE BEAUNE)" 

は、私は別のフランスのウェブサイト(また、エンコードされたUTF-8)に同じコードを試してみました:

x <- read_html('http://www.lemonde.fr/disparitions/article/2017/12/06/johnny-hallyday-c-etait-notre-seule-rock-star-la-france-perd-son-icone-du-rock_5225507_3382.html') 
x %>% html_nodes('.taille_courante+ p , .croix_blanche , .tt2') %>% html_text() 

は、今私は発音区別符号を取得しますなど:

[1] "Johnny Hallyday : « C’était notre seule rock star », « La France perd son icône du rock »"                                               
[2] "« Comme toute la France, mon cœur est brisé, a déclaré à l’Agence France-Presse (AFP) la chanteuse Sylvie Vartan, qui fut la première épouse de Johnny Hallyday, et mère de leur fils, David, né en 1966. J’ai perdu l’amour de ma jeunesse et rien ne pourra jamais le remplacer. »" 

最初のウェブサイトでどこが間違っているかについてのご意見はありますか?または修正方法?

答えて

0

これは奇妙なウェブサイトです。これらは、JavaScriptコード内のコメントのように見える

lines[!utf8::utf8_valid(lines)] 
#> [1] "// on supprime l'\xe9ventuel cookie"                    
#> [2] "//Ouverture et fermeture de l'encart r\xe9saux sociaux lors d'un clic sur le bouton"        
#> [3] "//Cr\xe9ation de l'iframe facebook \xe0 la premi\xe8re ouverture de l'encart pour qu'elle fasse la bonne largeur" 
#> [4] "//fermeture de l'encart r\xe9saux sociaux lors d'un clic ailleurs sur la page" 

:ここでは、問題のあるラインです

lines <- readLines(url, warn = FALSE) 
all(utf8::utf8_valid(lines)) 
#> [1] FALSE 

:それはすべての有効なUTF-8ではありません。私は、read_htmlがそのページがすべての有効なUTF-8ではないことを認識し、Windows-1252またはその他の8ビットコード体系であると解釈していると考えています。

あなたは問題JSセグメントを削除することによってこの問題を回避しようとすることができます:

​​

これは、予想される出力を提供します。

関連する問題