我正在抓取分类广告网站,但对字符串的某些部分有困难。

该网站有混合货币、美元和欧元的广告。我正在以 csv 格式导出一些数据。到目前为止很好,直到我看到这个:

<b>400.00 USD</b>

现在下一个广告:
<b>237.00 euro</b>

还有一个:
<b>120.00 $</b>

等等。

这是实际有效的 xpath:
item["unitPrice"] = t.xpath('//span[@style="color:red;"]/text()').extract()

csv 中返回的结果是 400.00 USD
我想要做的是提取字符串的第一部分,即 400.00 或 237.00 并将它们放在价格列下,并提取字符串的第二部分,即美元或美元或欧元。据我了解,它将是具有不同正则表达式的相同 xpath。你会推荐什么?

谢谢你。

最佳答案

使用 ([0-9\.]+)\s+(.*)$ regex 解析价格,示例:

>>> import re
>>> prices = ['400.00 USD', '120.00 $', '237.00 euro']
>>> template = re.compile('^([0-9\.]+)\s+(.*)$')
>>> for price in prices:
...     print template.findall(price)
...
[('400.00', 'USD')]
[('120.00', '$')]
[('237.00', 'euro')]

关于python - 提取字符串的一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22516622/

10-12 23:50