Как я могу перебрать все теги, которые имеют определенный атрибут с определенным значением? Например, скажем, нам нужны только данные data1, data2 и т.д ...
<html>
<body>
<invalid html here/>
<dont care> ... </dont care>
<invalid html here too/>
<interesting attrib1="naah, it is not this"> ... </interesting tag>
<interesting attrib1="yes, this is what we want">
<group>
<line>
data
</line>
</group>
<group>
<line>
data1
<line>
</group>
<group>
<line>
data2
<line>
</group>
</interesting>
</body>
</html>
Я пробовал BeautifulSoup, но он не может разобрать файл. Парсер lxml, похоже, работает:
broken_html = get_sanitized_data(SITE)
parser = etree.HTMLParser()
tree = etree.parse(StringIO(broken_html), parser)
result = etree.tostring(tree.getroot(), pretty_print=True, method="html")
print(result)
Я не знаком с его API и не могу понять, как использовать getiterator или xpath.