1

因此,我想在所有 td class="banana" 中获取所有 a 标签,但前提是此 td 包含文本“Today”

import lxml.html
html = lxml.html.parse("http://www.sitetoscrape.com/")
a = html.xpath('//td[@class="banana"]//text[@text="Today"]//a')

print a

这将返回一个空列表,如果我取出 "//text[@text="Today"]" 它可以工作,但我会取回所有 td class='banana' 中的所有链接

4

1 回答 1

3

没有例子很难给出准确的答案,但应该这样做。

import lxml.html as lh

html="""\
<html>
<body>
<h1>My First Heading</h1>
<td class="banana">
<a>today</a>
<a></a>
<a></a>
</td>
<td class="banana">
<a>bar</a>
<a></a>
<a></a>
</td>
</body>
</html>"""

doc=lh.fromstring(html)

doc.xpath('.//td[contains(.,"today") and @class="banana"]/a')
Out[145]: [<Element a at 1c348b8>, <Element a at 1c34ae8>, <Element a at 1c34c00>]
于 2012-11-13T07:30:40.403 回答