我正在尝试使用以下代码从网页中提取文本。对于其他网站来说,它工作正常,但是在这里我得到的是空列表
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)
答案 0 :(得分:0)
尝试此xpath:
//td[@headers="contactName"]//text()
为了将来,请尝试创建比从浏览器开发工具中选择的更具可读性的“ xpath”。
答案 1 :(得分:0)
还考虑使用css attribute =值选择器。这既更短,更不易损坏,也更容易在第一次比赛时停止,并且通过添加/删除i
可以使大小写不敏感/不敏感
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)