Форум сайта python.su
Имеется html-страница с примерно такой разметкой
<html>
<body>
<div class="content_block" id="content_1" style="display: block; ">
<ol>
<li>
<a href="/..." title="AAA">aa</a>
</li>
<li>
<a href="/..." title="BBB">bb</a>
</li>
<li>
<a href="/..." title="CCC">cc</a>
</li>
</ol>
</div>
<div class="content_block" id="content_2" style="display: block; ">
<ol>
<li>
<a href="/..." title="AAA2">aa2</a>
</li>
<li>
<a href="/..." title="BBB2">bb2</a>
</li>
<li>
<a href="/..." title="CCC2">cc2</a>
</li>
</ol>
</div>
</body>
</html>
for one in cleaned_html.cssselect( 'div ol li a' )
print one.text_content()
aa
bb
cc
aa2
bb2
cc2
for one in cleaned_html.cssselect( 'div#content_1.content_block ol li a' )
print one.text_content()
Отредактировано (Ноя. 2, 2011 01:48:16)
Офлайн
from lxml import etree
HTML = """<html>
<body>
<div class="content_block" id="content_1" style="display: block; ">
<ol>
<li>
<a href="/..." title="AAA">aa</a>
</li>
<li>
<a href="/..." title="BBB">bb</a>
</li>
<li>
<a href="/..." title="CCC">cc</a>
</li>
</ol>
</div>
<div class="content_block" id="content_2" style="display: block; ">
<ol>
<li>
<a href="/..." title="AAA2">aa2</a>
</li>
<li>
<a href="/..." title="BBB2">bb2</a>
</li>
<li>
<a href="/..." title="CCC2">cc2</a>
</li>
</ol>
</div>
</body>
<html>
"""
if "__main__" == __name__:
parser = etree.HTMLParser(remove_blank_text=True, strip_cdata=False)
html = etree.fromstring(HTML, parser)
# вариант 1
for node in html.find(".//div").iterfind(".//a"):
print(node.text)
# вариант 2
for node in html.iterfind(".//div[@id='content_1']/*//a"):
print(node.text)
Офлайн
couatlЧто именно не получилось? У меня вариант с
но не получилось.
for one in cleaned_html.cssselect( 'div#content_1.content_block ol li a' )
print one.text_content()
Офлайн