On 11 Jul 2013 10:04, "F.R." <anthra.nor...@bluewin.ch> wrote: > > Hi all, > > I haven't been able to get up to speed with XML. I do examples from the tutorials and experiment with variations. Time and time again I fail with errors messages I can't make sense of. Here's the latest one. The url is " http://finance.yahoo.com/q?s=XIDEQ&ql=0". Ubuntu 12.04 LTS, Python 2.7.3 (default, Aug 1 2012, 05:16:07) [GCC 4.6.3] > > >>> import xml.etree.ElementTree as ET > >>> tree = ET.parse('q?s=XIDEQ') # output of wget http://finance.yahoo.com/q?s=XIDEQ&ql=0 > Traceback (most recent call last): > File "<pyshell#69>", line 1, in <module> > tree = ET.parse('q?s=XIDEQ') > File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1183, in parse > tree.parse(source, parser) > File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse > parser.feed(data) > File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1643, in feed > self._raiseerror(v) > File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1507, in _raiseerror > raise err > ParseError: mismatched tag: line 9, column 2 > > Below first nine lines. The line numbers and the following space are hand-edited in. Three dots stand for sections cut out to fit long lines. Line 6 is a bunch of "meta" statements, all of which I show on a separate line each in order to preserve the angled brackets. On all lines the angled brackets have been preserved. The mismatched character is the slash of the closing tag </head>. What could be wrong with it? And if it is, what about fault tolerance? > > 1 <!DOCTYPE html PUBLIC "-//W3C//DTD . . . /strict.dtd"> > 2 <html lang="en-US"> > 3 <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> > 4 <title>XIDEQ: Summary for EXIDE TECH NEW- Yahoo! Finance</title> > 5 <meta name="description" xml:space="default" content="View the basic XIDEQ . . . > 6 . . . other companies."><meta name="keywords" content="XIDEQ, EXIDE TECH . . ."> > <meta property="fb:app_id" content="118155468215844"> > <meta property="fb:admins" content="503762770,100001149693905"> > <meta property="og:type" content="company"> > <meta property="og:site_name" content="Yahoo! Finance"> > <meta property="og:title" content="Exide Technologies"> > <meta property="og:image" content="http://l.yimg.com/a/p/fi/31/09/00.jpg "> > <meta property="og:url" content="http://finance.yahoo.com/q?s=XIDEQ"> > <meta property="og:description" content="View the basic XIDEQ . . . > 7 other companies."><link rel="canonical" href=" http://finance.yahoo.com/q?s=XIDEQ"> > 8 <link rel="stylesheet" href="http://l.yimg.com/zz/ . . . type="text/css"> > 9 </head> > ^ > Mismatch! > > Thanks for suggestions > > Frederic
That is not XML. It is HTML. You get a mismatched tag because the <link> tag doesn't need closing in HTML, but in XML every single tag needs closing. Use an HTML parser. I strongly recommend BeautifulSoup but I think etree has an HTML parser too. I am not sure..
-- http://mail.python.org/mailman/listinfo/python-list