我正在尝试使用类foo从td标记的第一个子节点提取href。一个示例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而不是迭代会更有效,但不知道如何构建它。
谢谢。
答案 0 :(得分:1)
是的,您可以通过从@href
内的a
标记获取td
来简化它:
return tree.xpath('//td[@class="foo"]/a/@href')