在 html.fromstring 中使用 xpath 时获取空列表

Getting empty list while using xpath with html.fromstring

我正在尝试使用以下代码从网页中提取文本。它在其他网站上运行良好,但在这里我得到的是空列表

import requests
from lxml import html

siteurl = 'https://clinicaltrials.gov/ct2/show/NCT03752268?cond=cancer&draw=2&rank=1'
rq = requests.get(siteurl)
get_soup = html.fromstring(rq.content)
name = get_soup.xpath('//*[@id="tab-body"]/div/div[7]/div[2]/div[3]/table/tbody/tr/td[1]//text()')
print(name)

试试这个 xpath:

//td[@headers="contactName"]//text()

为了将来,尝试创建一个比从浏览器开发工具中选择一个更具可读性的"xpath"。

也考虑使用 css attribute = value 选择器。这既短又不那么脆弱,在第一场比赛中停止时更快,并且通过 adding/removing i 你可以 insensitive/sensitive

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://clinicaltrials.gov/ct2/show/NCT03752268?cond=cancer&draw=2')
soup = bs(r.content, 'lxml')
print(soup.select_one('[headers=contactName i]').text)