Вы должны сделать это ...
import lxml.etree as ET
from lxml.etree import XMLParser
parser = XMLParser(ns_clean=True, recover=True)
html = """<html><body><div id="contentDiv_reviewHistoPop_B004HYGU18_4792" style="display:none;"></body></html>"""
tree = ET.fromstring(html, parser)
tmp = list()
for elem in tree.iter():
if elem.tag == 'div':
for ii in elem.items():
if (ii[0].lower() == 'id') and ('contentDiv_reviewHistoPop' in ii[1]):
tmp.append(elem)
tmp
будет содержать список соответствующих элементов div с соответствующим текстом.
Если вы можете использовать только lxml.html
,затем сделайте это ...
import lxml.html
html = """<html><body><div id="contentDiv_reviewHistoPop_B004HYGU18_4792" style="display:none;"></body></html>"""
doc = lxml.html.document_fromstring(html)
tmp = list()
for elem in doc.iter():
if elem.tag == 'div':
for ii in elem.items():
if (ii[0].lower() == 'id') and ('contentDiv_reviewHistoPop' in ii[1]):
tmp.append(elem)
Опять же ... tmp будет содержать соответствующие теги