title: lxml in python, parse from url
body: <p>I am novice to lxml. I want to download the web page and get interested data from, my code is:</p>
  
  <pre><code>import urllib2
  from lxml import etree
  
  url = "http://www.example.com/"
  
  html = urllib2.urlopen(url)
  
  root = etree.parse(html) # the problem is here
  </code></pre>
  
  <p>can anyone explain me why it is wrong?</p>
  
  <p>error is:</p>
  
  <pre><code>Traceback (most recent call last):
    File "yatego.py", line 10, in &lt;module&gt;
      root = etree.parse(html)
    File "lxml.etree.pyx", line 2942, in lxml.etree.parse (src/lxml/lxml.etree.c:54187)
    File "parser.pxi", line 1550, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:79703)
    File "parser.pxi", line 1580, in lxml.etree._parseFilelikeDocument (src/lxml/lxml.etree.c:80012)
    File "parser.pxi", line 1463, in lxml.etree._parseDocFromFilelike (src/lxml/lxml.etree.c:78908)
    File "parser.pxi", line 1019, in lxml.etree._BaseParser._parseDocFromFilelike (src/lxml/lxml.etree.c:75905)
    File "parser.pxi", line 564, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71739)
    File "parser.pxi", line 645, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72614)
    File "parser.pxi", line 585, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71955)
  lxml.etree.XMLSyntaxError: Entity 'mdash' not defined, line 4, column 21
  </code></pre>
  
  <p>This code:</p>
  
  <pre><code>url = "http://www.example.com/"
  
  res = requests.get(url)
  doc = lxml.html.parse(res.content)
  </code></pre>
  
  <p>gives this error:</p>
  
  <pre><code>File "yatego.py", line 11, in &lt;module&gt;
      doc = lxml.html.parse(res.content)
    File "/usr/lib/python2.7/dist-packages/lxml/html/__init__.py", line 692, in parse
      return etree.parse(filename_or_url, parser, base_url=base_url, **kw)
    File "lxml.etree.pyx", line 2942, in lxml.etree.parse (src/lxml/lxml.etree.c:54187)
    File "parser.pxi", line 1528, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:79485)
    File "parser.pxi", line 1557, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:79768)
    File "parser.pxi", line 1457, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:78843)
    File "parser.pxi", line 997, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:75698)
    File "parser.pxi", line 564, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71739)
    File "parser.pxi", line 645, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72614)
    File "parser.pxi", line 583, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71927)
  IOError: Error reading file '&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
  &lt;head&gt;
      &lt;title&gt;IANA &amp;mdash; Example domains&lt;/title&gt;
  </code></pre>
  
  <p>This code:</p>
  
  <pre><code>doc = lxml.html.parse(url)
  </code></pre>
  
  <p>works fine</p>
  
  <p>So where is the problem?</p>