在将xpath与html.fromstring一起使用时获取空列表

时间:2019-08-22 10:48:57

标签: python web-scraping python-requests lxml.html

我正在尝试使用以下代码从网页中提取文本。对于其他网站来说,它工作正常,但是在这里我得到的是空列表

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)

2 个答案:

答案 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)