如何在密集的 html 树中获取 xpath href

how to get xpath href in a dense html tree

我正在尝试为以下 url

获取 href 数据
url = r'https://pubmed.ncbi.nlm.nih.gov/?term=COVID-19&filter=simsearch1.fha&page=1'

使用下面的代码

lxml.html.fromstring(url).xpath('//div[contains(@class,"inner-wrap")]//div/a[contains(@class,"labs-docsum-title")]//@href')

我已经为 xpath 中的字符串尝试了许多其他替代方法,例如

.xpath('.//div/a/@href')

.xpath(r'/html/body/main/div[8]/div[2]/section/div[1]/div/article[1]/div[2]/div[1]/a[1]/@href')

但我每次都得到一个空 []。我相信我没有得到正确的层次结构(父子)树,但无法找出问题所在。我想要的解决方案可能类似于:

print(href)
"/32139372/?from_term=COVID-19&from_filter=simsearch1.fha&from_page=1&from_pos=1" 

迭代中的第一个项目

试试这样的东西:

url = "https://pubmed.ncbi.nlm.nih.gov/?term=COVID-19&filter=simsearch1.fha&page=1"
resp = requests.get(url)
doc = lxml.html.fromstring(resp.text)
links = doc.xpath('//div/a[@class="labs-docsum-title"]')
print(links[0].attrib.get('href'))

输出:

/32139372/?from_term=COVID-19&from_filter=simsearch1.fha&from_page=1&from_pos=1