Я пытаюсь выяснить API Python lxml, но сталкиваюсь с особой проблемой. Я установил следующие версии библиотеки:
- libxml2: 2.7.8
- libxslt: 1.1.26
Когда я запускаю следующий код:
html = open('file.html', 'r')
context = etree.iterparse(StringIO(html), events=("start", "end"), html='true')
for event, element in context:
#do stuff
РЕДАКТИРОВАТЬ:
Оказывается, это ошибка синтаксического анализа. Я переместил HTML в файл (показано ниже)
<html>
<head></head>
<body>
<table>
<tr>
<td>image</td>
<a href="relative.phtml?with=querystring&blah=blah">blah\n(blah)</a></td>
<td> 35 </td>
<td> 28 </td>
<td><b>-7</b></td>
<td>
23,000 </td>
<td> 373,000 </td>
<td> 644,000 </td>
<td>+72.65%</td>
</tr>
<tr>
<td>image</td>
<td><a href="relative.phtml?with=querystring&blah=blah">blah\n(blah)</a></td>
<td> 35 </td>
<td> 28 </td>
<td><b>-7</b></td>
<td>
23,000 </td>
<td> 373,000 </td>
<td> 644,000 </td>
<td>+72.65%</td>
</tr>
</table>
</body>
</html>
Теперь я получаю эту ошибку:
для события, элемент в контексте:
Файл "iterparse.pxi", строка 515, в lxml.etree.iterparse. следующий
(src / lxml / lxml.etree.c: 86484) Файл "parser.pxi", строка 565, в
lxml.etree._raiseParseError (src / lxml / lxml.etree.c: 64084)
lxml.etree.XMLSyntaxError: ошибка разбора имени атрибута, строка 1,
колонка 12
ОРИГИНАЛЬНАЯ ОШИБКА:
для события, элемент в контексте:
Файл "iterparse.pxi", строка 515, в lxml.etree.iterparse. следующий
(src / lxml / lxml.etree.c: 86484) Файл "parser.pxi", строка 565, в
lxml.etree._raiseParseError (src / lxml / lxml.etree.c: 64084)
lxml.etree.XMLSyntaxError: htmlParseEntityRef: ожидая ';', строка 7,
колонка 71
Мне показалось, что я очень внимательно следил за учебником с сайта сайта lxml , поэтому я очень запутался. Может ли это быть проблемой установки?