title: lxml error "IOError: Error reading file" when parsing facebook mobile in a python scraper script
body: <p>I use a modified script from <a href="https://stackoverflow.com/questions/2030652/logging-into-facebook-with-python">Logging into facebook with python</a> post :</p>
  
  <pre><code>#!/usr/bin/python2 -u
  # -*- coding: utf8 -*-
  
  facebook_email = "YOUR_MAIL@DOMAIN.TLD"
  facebook_passwd = "YOUR_PASSWORD"
  
  
  import cookielib, urllib2, urllib, time, sys
  from lxml import etree
  
  jar = cookielib.CookieJar()
  cookie = urllib2.HTTPCookieProcessor(jar)       
  opener = urllib2.build_opener(cookie)
  
  headers = {
      "User-Agent" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7",
      "Accept" : "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,text/png,*/*;q=0.5",
      "Accept-Language" : "en-us,en;q=0.5",
      "Accept-Charset" : "utf-8",
      "Content-type": "application/x-www-form-urlencoded",
      "Host": "m.facebook.com"
  }
  
  try:
      params = urllib.urlencode({'email':facebook_email,'pass':facebook_passwd,'login':'Log+In'})
      req = urllib2.Request('http://m.facebook.com/login.php?m=m&amp;refsrc=m.facebook.com%2F', params, headers)
      res = opener.open(req)
      html = res.read()
  
  except urllib2.HTTPError, e:
      print e.msg
  except urllib2.URLError, e:
      print e.reason[1]
  
  def fetch(url):
      req = urllib2.Request(url,None,headers)
      res = opener.open(req)
      return res.read()
  
  body = unicode(fetch("http://www.facebook.com/photo.php?fbid=404284859586659&amp;set=a.355112834503862.104278.354259211255891&amp;type=1"), errors='ignore')
  tree = etree.parse(body)
  r = tree.xpath('/see_prev')
  print r.text
  </code></pre>
  
  <p>When I execute the code, problems appears :</p>
  
  <pre><code>$ ./facebook_fetch_coms.py
  Traceback (most recent call last):
    File "./facebook_fetch_coms_classic_test.py", line 42, in &lt;module&gt;
      tree = etree.parse(body)
    File "lxml.etree.pyx", line 2957, in lxml.etree.parse (src/lxml/lxml.etree.c:56230)
    File "parser.pxi", line 1533, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:82313)
    File "parser.pxi", line 1562, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:82606)
    File "parser.pxi", line 1462, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:81645)
    File "parser.pxi", line 1002, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:78554)
    File "parser.pxi", line 569, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:74498)
    File "parser.pxi", line 650, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:75389)
    File "parser.pxi", line 588, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:74691)
  IOError: Error reading file '&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;head&gt;&lt;title&gt;Facebook&lt;/title&gt;&lt;meta name="description" content="Facebook helps you connect and share with the people in your life."
  </code></pre>
  
  <p>The goal is first to get the link with <code>id=see_prev</code> with <code>lxml</code>, then using a while loop to open all comments, to finally fetch all messages in a file. Any help will be very appreciated !</p>
  
  <p><strong>Edit</strong>:
  I use Python 2.7.2 on archlinux x86_64 and lxml 2.3.3.</p>