2016-11-04 2 views
0

PythonでBeautifulSoup4を使用してWikipediaを削っています。特定の文字をPythonでHTMLにエンコードする方法

data = urllib2.urlopen(wikiurl) 
soup = BeautifulSoup(data, 'html.parser') 

私はその後、いくつかの段落のためのHTMLを取得するには

for link in soup.find_all('p'): 
    completehtml = completehtml + str(link) 

を使用します(ループの段落の数をカウントし、その後、彼らは限界に達した場合に壊れるカウンターを使用してブレーク条件を持っています)

このデータがスクレイプされた後。私はオンラインのウェブサイトでそれを入力する必要があります。 (私は廃止されたHTMLを使ってそれを入力する必要があります)。問題は、en-dashなどの文字の一部が適切なHTMLにない、つまりHTMLでコード化されているため、代わりにシンボルが表示されることです。

これらはPythonでうまく印刷されます。しかし、pyautoguiやActionChainsクラスなどのメソッドを使用してキーを送信すると、破棄された文字列を使用してそれらを入力すると、シンボルとして入力されます。

どうすればこの問題を解決できますか。 Pythonで解決策を探しています。

EDIT:非ASCII文字が廃棄HTMLであるとき わかりましたので、主な問題はあります。 クリップボードにコピーされたとき、またはpythonによってsend keysメソッドを使用して入力されたときに、それらは 'latin-1'にデコードされます。

EDIT: その後、特定のUnicodeのsubstirngsを交換した後、バックHTMLにそれらを回すUnicodeに特定のHTMLエンティティを変換する必要があります。

+0

あなたがHTMLをエスケープ解除する必要がありますか?つまり、「©」を©と置き換えますか? – hlfrmn

+0

反対ではなく、en-dashが入力されたとき。 '-'の代わりに' – 'とする必要があります – bluescreenofdeath2016

+0

検索と置換を使用してください。 [Here](https://dev.w3.org/html5/html-author/charref)はリストです。 – usr2564301

答えて

関連する問題