Python Scrapy:如何获取文本和带有<;的文本;b>;使用scrapy和xpath时同时标记?

Python Scrapy:如何获取文本和带有<;的文本;b>;使用scrapy和xpath时同时标记?,python,xpath,scrapy,Python,Xpath,Scrapy,我需要从下面的html获取183.7 <span class="price"><b>183</b>.7</span> 我应该怎样写代码才能得到完整的数字 我在学校读过《刮痧教程》 但我仍然很难理解正确的xpath设置以获得所需的值 如果我尝试 response.xpath('//span[@class="price"]').get() 它回来了 ['<span class="price"><'b>183</'b&

我需要从下面的html获取183.7

<span class="price"><b>183</b>.7</span>
我应该怎样写代码才能得到完整的数字

我在学校读过《刮痧教程》 但我仍然很难理解正确的xpath设置以获得所需的值

如果我尝试

response.xpath('//span[@class="price"]').get() 
它回来了

['<span class="price"><'b>183</'b>.7 </span>']
['.7']
这也不是我所需要的。

您可以使用“/”获取元素上的所有子文本,如下所示:

“”.join(response.xpath('//span[@class=“price”]///text()).extract())
您可以使用“/”获取元素上的所有子文本,如下所示:

“”.join(response.xpath('//span[@class=“price”]///text()).extract())

它可以获得值,但它们看起来像“183”、“7”、“202”、“4”、“299”、“302”和“3”,因此很难连接。使用.join似乎也很困难,因为有时会出现没有.x值的值。请告诉我您是否有将183.7作为一个值的好主意。我只取决于您的问题描述,如果您的html不仅具有
class=price
,还应该遍历您需要的元素。然后取出每个元素的数据。它可以得到值,但它们看起来像“183”、“7”、“202”、“4”、“299”、“302”、“3”,所以很难连接。使用.join似乎也很困难,因为有时会出现没有.x值的值。请告诉我您是否有将183.7作为一个值的好主意。我只取决于您的问题描述,如果您的html不仅具有
class=price
,还应该遍历您需要的元素。然后取出每个元素的数据。
['<span class="price"><'b>183</'b>.7 </span>']