欧元符号(Scrapy-Python)后刮的价值
我需要一个选择器刮欧元符号(\ u20ac)后的值。欧元符号(Scrapy-Python)后刮的价值
<Selector xpath='//*[@class="col-sm-4"]/text()' data=u'\r\n\t\t \u20ac 30.000,00'>
我尝试了几十个变种,我在这里找到了stackoverflow和elsewere,但我不能得到它。
边像https://regexr.com/告诉我这样的事情:
response.xpath('//*[@class="col-sm-4"]/text()').re('(\u20ac).\d*.\d*.\d*')
应该工作,但它不。
编辑:数据的,我想在这里一个例子链接刮:https://www.firmenabc.at/manfred-jungwirth-montagen_MoKY
将不胜感激帮助!
迈克尔
试试这个:
response.xpath('//*[@class="col-sm-4"]/text()').re(u'\u20ac\s*(\d+[\d\.,]+)')
真棒!谢谢!! – Michael
这是您正在寻找的正则表达式。如果你想从字面上匹配\u20ac
你需要一个\
,下面的变种前缀是:\u20ac|\\u20ac
将同时匹配€和\ u20ac:
缺失也是一个\s+
。 \s
指定要匹配一个空白,\s+
指定要匹配多个空格(注意有30.000,00 \ u20ac和价值之间的空白,)
注意,虽然这将只捕捉€
符号(捕获组由封闭括号()
,即(ANYTHING之间的将被捕获)
所以我相信你想要的是:
\u20ac|\\u20ac\s+(\d*.*)
- 在这里,我们周围.\d*.*
与()
因此捕获该值而不是€
符号。
重复.\d*
是多余的,您已经表明您希望通过以前的编写匹配它的每一个位置:\d
并将其后缀为*
。
最后,我建议你用正则表达式使用https://www.regex101.com - 这是一个很棒的工具,它会为你节省很多头痛。
我从你的答案中学到了很多 - 谢谢! - 不幸的是“\ u20ac | \\ u20ac \ s +(\ d *。*)” - 或其他变体,都不起作用。也许这跟€符号之前的虚拟空间有什么关系? (\ r \ n \ t \ t \ u20ac ...) – Michael
试试这个''\ s +(\ d *。*)'' – alexisdevarennes
不只是显示数字:https://www.dropbox.com/s/x70nvdur27whgyg /stack.JPG?dl=0 – Michael
希望我的回答帮你,如果它的ID,请注明答案是正确的:) – alexisdevarennes
你能在这里提供的元素一起工作的一大块。你既没有透露链接,也没有任何足够的资源来处理它。没有实际测试就很难回答。 – SIM
您的权利Shahin - 我更新了示例链接 - 也在这里:https://www.firmenabc.at/manfred-jungwirth-montagen_MoKY – Michael