如果页面有不同的变体,如何在页面中查找文本?
How to find text within page if it is in different variation?
我有一个元素,例如 <span class="ads_price" id="tdo_8">7 650 €</span>
,我需要通过价格找到这个元素,但问题是我不知道价格会以什么形式出现。我需要在增强元素中搜索这个子字符串,这样它在任何情况下都不会出现问题。例如,如果我搜索 7650
的价格,它不会找到这个元素,但如果我搜索 7 650
(注意 space),那么它会毫无问题地找到它。现在我正在使用 xpath //*[contains(text(),'{search_price}')]
搜索。我的问题 - 有没有什么方法可以改进我对任何页面的任何价格的搜索?
P.S。我正在使用没有 javascript 渲染网页的 scrapy。
此代码适合您:
response.xpath("//*[contains(translate(text(),' ',''),'7650')]").getall()
这将 return 包含 7650
的所有元素 - 有或没有 space,有或没有 $、€ 等
我用以下方法测试过:
<span class="ads_price" id="tdo_8">7 650 €</span>
<span class="ads_price" id="tdo_8">7 650 </span>
<span class="ads_price" id="tdo_8">$ 7650</span>
<span class="ads_price" id="tdo_8">7650.30</span>
我有一个元素,例如 <span class="ads_price" id="tdo_8">7 650 €</span>
,我需要通过价格找到这个元素,但问题是我不知道价格会以什么形式出现。我需要在增强元素中搜索这个子字符串,这样它在任何情况下都不会出现问题。例如,如果我搜索 7650
的价格,它不会找到这个元素,但如果我搜索 7 650
(注意 space),那么它会毫无问题地找到它。现在我正在使用 xpath //*[contains(text(),'{search_price}')]
搜索。我的问题 - 有没有什么方法可以改进我对任何页面的任何价格的搜索?
P.S。我正在使用没有 javascript 渲染网页的 scrapy。
此代码适合您:
response.xpath("//*[contains(translate(text(),' ',''),'7650')]").getall()
这将 return 包含 7650
的所有元素 - 有或没有 space,有或没有 $、€ 等
我用以下方法测试过:
<span class="ads_price" id="tdo_8">7 650 €</span>
<span class="ads_price" id="tdo_8">7 650 </span>
<span class="ads_price" id="tdo_8">$ 7650</span>
<span class="ads_price" id="tdo_8">7650.30</span>