我正试图用类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')