1

I have this script, which reads the text from web page:

page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page);
paragraphs = soup.findAll('p');

for p in paragraphs:
    content = content+p.text+" ";

In the web page I have this string:

Möddinghofe

My script reads it as:

Möddinghofe

How can I read it as it is?

torayeff
  • 9,296
  • 19
  • 69
  • 103
  • possible duplicate of [Convert XML/HTML Entities into Unicode String in Python](http://stackoverflow.com/questions/57708/convert-xml-html-entities-into-unicode-string-in-python) – Chris B. May 14 '12 at 18:12

2 Answers2

1

Hope this would help you

from BeautifulSoup import BeautifulStoneSoup
import cgi

def HTMLEntitiesToUnicode(text):
    """Converts HTML entities to unicode.  For example '&' becomes '&'."""
    text = unicode(BeautifulStoneSoup(text, convertEntities=BeautifulStoneSoup.ALL_ENTITIES))
    return text

def unicodeToHTMLEntities(text):
    """Converts unicode to HTML entities.  For example '&' becomes '&'."""
    text = cgi.escape(text).encode('ascii', 'xmlcharrefreplace')
    return text

text = "&, ®, <, >, ¢, £, ¥, €, §, ©"

uni = HTMLEntitiesToUnicode(text)
htmlent = unicodeToHTMLEntities(uni)

print uni
print htmlent
# &, ®, <, >, ¢, £, ¥, €, §, ©
# &amp;, &#174;, &lt;, &gt;, &#162;, &#163;, &#165;, &#8364;, &#167;, &#169;

reference:Convert HTML entities to Unicode and vice versa

Community
  • 1
  • 1
Anuj
  • 9,222
  • 8
  • 33
  • 30
0

I suggest you take a look at the encoding section of the BeautifulSoup documentation.

twaddington
  • 11,607
  • 5
  • 35
  • 46