用于选择多个 HTML `a` 元素的 XPath
我对 XPath 还很陌生,无法通过其他解决方案找到答案。
我想做的是选择给定 td
内的所有 a
元素(例如 td[2]
)并运行 for语句来输出 a
元素中包含的文本。
源代码:
multiple = HTML.ElementFromURL(url).xpath('//table[contains(@class, "mg-b20")]/tr[3]/td[2]/*[self::a]')
for item in multiple:
Log("text = %s" %item.text)
有什么指示可以让我完成这项工作吗?
谢谢!
I'm pretty new to XPath and couldn't figure it out looking at other solutions.
What I'm trying to do is select all the a
elements inside a given td
(td[2]
in example) and running a for statement to output the text contained within the a
elements.
Source code:
multiple = HTML.ElementFromURL(url).xpath('//table[contains(@class, "mg-b20")]/tr[3]/td[2]/*[self::a]')
for item in multiple:
Log("text = %s" %item.text)
Any pointer in how I can make this work?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要的 XPath 非常接近:
我不知道您正在使用什么库,但我怀疑它是 Plex Parsekit API。如果是这样,parsekit 使用
lxml.etree
作为其底层库,因此您可以进一步简化您的代码:这甚至可以处理混合内容等极端情况,例如:
The XPath you need is pretty close:
I don't know what library you're using, but I suspect it is the Plex Parsekit API. If so, parsekit uses
lxml.etree
as its underlying library, so you can simplify your code even further:This will even take care of corner cases like mixed content, e.g. this: