使用lxml,查找所有td class='banana',但前提是它们包含i中的文本“Today”

2024-09-29 21:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想得到所有td^{cl1}中的所有a标记$

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'中的所有链接


Tags: text标记importcomhttptodayparsehtml
1条回答
网友
1楼 · 发布于 2024-09-29 21:23:17

没有例子很难给出一个准确的答案,但类似的东西应该可以做到。在

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>]

相关问题 更多 >

    热门问题