lxml-基于父类获取子类的属性



我正试图用类foo从td标记的第一个子级提取hrefs。一个示例DOM是:

<td class="foo">
   <a href="www.foobar1.com"></a>
</td>
<td class="foo">
   <a href="www.foobar2.com"></a>
</td>

从这里我想得到["www.foobar1.com", "www.foobar2.com"]

到目前为止,我有以下内容:

import requests
from lxml import html
def get_hrefs(url):
    page = requests.get(url)
    tree = html.fromstring(page.text)
    td_elements = tree.xpath('//td[@class="foo"]')
    return [el.find("a").attrib["href"] for el in td_elements]

然而,我觉得扩展xpath而不是进行迭代会更有效,但不确定如何构建它

谢谢。

是的,您可以通过从每个td:内的a标签中获取@href来简化它

return tree.xpath('//td[@class="foo"]/a/@href')

最新更新