Python 在表中查找具有特定文本的href

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()

我有一个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(), 'Unsubscribe')]")

这两项都将起作用:

//a[.="Unsubscribe"]/ancestor::tr
//tr[.//a[.="Unsubscribe"]]
  • 第一个说,“找到一个文本为“Unsubscribe”的
    ,然后找到该元素的祖先
    元素。”

  • 第二个说,“在任何地方查找
    ,但前提是它有一个带有文本“Unsubscribe”的后代

如果您的表本身被包装在另一个表中,并且因此有另一个
与这个非常松散的标准相匹配,那么这两种方法都会给您带来误报。您可以通过提供更精确的路径来收紧它,例如

//a[.="Unsubscribe"]/parent::*/parent::tr
//tr[./*/a[.="Unsubscribe"]]
…或(对于第一个)指定只需要第一个(最近的)


请为将来的问题提供一个示例XML和所需的输出。
//a[.="Unsubscribe"]/ancestor::tr[1]