我对XPath很陌生,无法理解其他解决方案。
我要做的是选择给定a
内的所有td
元素(示例中为td[2]
)并运行for语句以输出{中包含的文本{1}}元素。
源代码:
a
我是如何使这项工作的指针?
谢谢!
答案 0 :(得分:3)
你需要的XPath非常接近:
//table[contains(@class, "mg-b20")]/tr[3]/td[2]//a
我不知道您使用的是哪个库,但我怀疑它是Plex Parsekit API。如果是这样,parsekit使用lxml.etree
作为其底层库,因此您可以进一步简化代码:
element = HTML.ElementFromURL(url)
alltext = element.xpath('string(//table[contains(@class, "mg-b20")]/tr[3]/td[2]//a)')
for item in alltext:
Log("text = %s" % item);
这甚至可以处理像混合内容这样的角落案例,例如:这样:
<a href="#">I am anchor text <span>But I am too and am not in Element.text</span> and I am in Element.tail</a>