Python 在表中查找具有特定文本的href
我有一个html表格,我试图找到一行,其中有一个href标记,其文本内容中有“Unsubscribe”一词。我正在使用lxml、python和xpath-我可以通过以下方式找到行:Python 在表中查找具有特定文本的href,python,xpath,lxml,Python,Xpath,Lxml,我有一个html表格,我试图找到一行,其中有一个href标记,其文本内容中有“Unsubscribe”一词。我正在使用lxml、python和xpath-我可以通过以下方式找到行: row_to_find = table.xpath("//tr[contains(descendant::*, 'Unsubscribe')]")[0] 但上述内容在a href中找不到。。下面的方法不起作用 row_to_find = tables.xpath(".//tr/*/a[contains(text()
row_to_find = table.xpath("//tr[contains(descendant::*, 'Unsubscribe')]")[0]
但上述内容在a href中找不到。。下面的方法不起作用
row_to_find = tables.xpath(".//tr/*/a[contains(text(), 'Unsubscribe')]")
这两项都将起作用:
//a[.="Unsubscribe"]/ancestor::tr
//tr[.//a[.="Unsubscribe"]]
- 第一个说,“找到一个文本为“Unsubscribe”的
,然后找到该元素的祖先
元素。” - 第二个说,“在任何地方查找
,但前提是它有一个带有文本“Unsubscribe”的后代
”
与这个非常松散的标准相匹配,那么这两种方法都会给您带来误报。您可以通过提供更精确的路径来收紧它,例如
//a[.="Unsubscribe"]/parent::*/parent::tr
//tr[./*/a[.="Unsubscribe"]]
…或(对于第一个)指定只需要第一个(最近的)
:
请为将来的问题提供一个示例XML和所需的输出。
//a[.="Unsubscribe"]/ancestor::tr[1]