Я пытаюсь использовать lxml для проверки фрагмента HTML, но он жалуется, что фрагмент недействителен, хотя он должен быть действительным:
img = """<img src="http://api.com/?data=ey&ip=1&img=1" height="1" width="1">"""
parser = lxml.etree.HTMLParser(recover=False)
lxml.etree.parse(StringIO(img), parser)
поднимает:
XMLSyntaxError: htmlParseEntityRef: expecting ';', line 1, column 37
Изменение &
, разделяющего части строки запроса, на ;
, по-видимому, устраняет проблему, но этого не требуется. Использование точек с запятой является рекомендацией W3C.
Есть ли что-то, что я могу сделать, чтобы lxml увидел этот фрагмент как действительный?