2011-12-22 6 views
1

可能性の重複:
Convert XML/HTML Entities into Unicode String in Pythonアポストロフィの代わりに表示される'のような文字を取り除くにはどうすればよいですか?

私は、Pythonを使ってWebサイトをこすりしようとしています。私は、urllib2、BeautifulSoup、reモジュールをインポートして使用します。

response = urllib2.urlopen(url) 
soup = BeautifulSoup(response) 
responseString = str(soup) 

coarseExpression = re.compile('<div class="sodatext">[\n]*.*[\n]*</div>') 
coarseResult = coarseExpression.findall(responseString) 

fineExpression = re.compile('<[^>]*>') 
fineResult = [] 

for coarse in coarseResult: 
    fine = fineExpression.sub('', coarse) 
    #print(fine) 
    fineResult.append(fine) 

は残念ながら、アポストロフィなどの文字がそうのような破損した形で表示されます - &#のX27; これを回避する方法はありますか?簡単に置き換える方法もありますか?

+7

破損していない、それはアポストロフィ(HTTP用HTML/XML文字エンティティです.org/wiki/List_of_XML_and_HTML_character_entity_references)。あなたはいつもそのようなエンティティをASCII同等物に戻すことができます。 (http://stackoverflow.com/questions/57708/convert-xml-html-entities-into-unicode-string-in-python) – dreynold

+12

BeautifulSoupのページを読み込んでいます**ちょうどREGEX IT!**このひどい、ひどいことをしていますか? –

+0

@FrancisAvila、私はまだPythonについて考えています。あなたはもっと良い方法を教えていただけますか? – nindalf

答えて

4

エンティティ変換で次のBeautifulSoupのドキュメントは、あなたが探しているものでなければなりません://en.wikipedia:

http://www.crummy.com/software/BeautifulSoup/documentation.html#Entity%20Conversion

+1

BSは16進エンコードエンティティ( ''')をデコードできないことを指摘していますが、10進エンコードエンティティ( ''')でうまく動作します。したがって、OPは事前にそれらを変換する必要があります。 – Avaris

+0

@Avaris BS、TBHのバグ、または少なくとも欠けている機能のように聞こえる。 –

関連する問題