我正在尝试通过xpath获取此值。
<td width="50%" class="col">
<table class="item" cellpadding="0" cellspacing="0">
<tr>
<th>Area (m²)</th>
<td class="value">
<strong>165</strong>
</td>
</tr>
我正在尝试获取实际的整数值(165)
这是我通过调试工具获得的xpath
/html/body/div[4]/section/div/div/div[2]/div[1]/div[1]/div[2]/div[3]/table/tbody/tr[2]/td[2]/table/tbody/tr/td/strong
我正在尝试收集有关此房源的信息,并且试图获取公寓的区域。我已经试过了从调试器获得的xpath,但是我总是得到一个空字符串或一个错误,该错误提示您无法将xpath选择器转换为字符串。不知道在哪里可以得到165的值。
请,您能提供的任何输入,我已经看了几天。
area = response.xpath('/html/body/div[4]/section/div/div/div[2]/div[1]/div[1]/div[2]/div[3]/table/tbody/tr[2]/td[2]/table/tbody/tr/td/strong')
print(area)
通过这个xpath,我期望165,但是我什么也没得到。我刚得到这个[]
答案 0 :(得分:1)
尝试使用相对的XPath而不是绝对的:
area = response.xpath('//td[@class="value"]/strong')
print(area)
或
area = response.xpath('//th[.="Area (m²)"]/following-sibling::td/strong')
print(area)
答案 1 :(得分:0)
尝试使用:
xpath = '//table.item/tr[contains(., "Area")]/td//text()'
//
相对路径选择
table.item
选择具有item
类的表
tr[contains(., "Area")]
检查所有带有文本“区域”的trs
td//text()
(对于具有文本“区域”的tr
,请选择td
中的tr
,然后
//text()
提取每个文本。大概是165。