2

我是 python 和 xpath 的新手,我有一个这样的 html 代码:

<a name="hello"></a>
<h3>hello</h3>
<table />

<a name="impact"></a>
<h3>Impact</h3>
<table cellspacing="0" cellpadding="0" border="0" class="wrapper-table"><tr> <td><p>An     unauthenticated attacker using a specifically crafted payload may be able to trick the Ruby on Rails backend into executing arbitrary code.</p></td></tr></table>

我想将整个表格及其所有标签和文本以及...保存在一个字符串中。我想要在影响标题之后的表格标签。

4

1 回答 1

0

利用

tables = root.xpath('.//table[preceding-sibling::h3[text()="Impact"]]')

或者

tables = root.xpath('.//h3[text()="Impact"]/following-sibling::table')

或者

tables = root.cssselect('h3:contains(Impact) ~ table')

完整的解决方案

root = tree.getroot()
tables = root.xpath('.//h3[text()="Impact"]/following-sibling::table')
for table in tables:
    print str
于 2013-08-04T07:49:20.973 回答