Как кодировать символы типа ä, ö, ü от HTML до python? - PullRequest
0 голосов
/ 15 марта 2020

Я хотел бы импортировать таблицы из Википедии в мой Блокнот Jupyter, а затем поместить их содержимое в информационный фрейм.

Проблема: специальные символы, такие как немецкий ä, ö, ü или французский é, è, закодированы неправильно. Как правильно разобрать HTML с этими символами?

Это исходная страница: https://en.wikipedia.org/wiki/List_of_ski_areas_and_resorts_in_Switzerland

И вот мой код:

#!conda install -c conda-forge wikipedia --yes
import wikipedia as wp
import pandas as pd
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
import numpy as np

#Import page
html = wp.page("List_of_ski_areas_and_resorts_in_Switzerland").html().encode("UTF-8")

#Create Dataframe
df = pd.DataFrame()
df = pd.read_html(html)[0]
df.head()

Это вывод. Как видите, Курорт "Шампери" написан как "Шампери".

enter image description here

Я помог себе, заменив их вручную.

#Clean
df = df.replace(to_replace ="ö", value ="ö", regex=True) 
df = df.replace(to_replace ="é", value ="é", regex=True)
df = df.replace(to_replace ="è", value ="è", regex=True)
df = df.replace(to_replace ="ü", value ="ü", regex=True)

У меня вопрос : нет ли лучшего решения, чтобы просто правильно импортировать символы с веб-сайта?

...