如何使用regex与Scrapy

2024-05-03 19:01:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想废弃一个website 并提取项目的以下价格,但同一项目有多个价格如何正确过滤出项目的价格。。在

下面是解析第1页上项目价格的代码:

hxs.select("//div[@class='category-products']/ul/li//div[@class='price-box']//span[@class='price']").extract()

它给出了:

^{pr2}$

前两种价格是相同的……第二种是同样的……但剩下的只有一种价格……有人能给我建议解决这个问题的方法吗。。。。在


Tags: 项目代码divbox价格websiteliul
1条回答
网友
1楼 · 发布于 2024-05-03 19:01:57
l = [u'<span class="price" id="old-price-8963">\n                    \u20b9 8,990                </span>',
 u'<span class="price" id="product-price-8963">\n                    \u20b9 5,990                </span>',
 u'<span class="price" id="old-price-8940">\n                    \u20b9 8,990                </span>',
 u'<span class="price" id="product-price-8940">\n                    \u20b9 5,990                </span>',
 u'<span class="price">\u20b9 7,990</span>',
 u'<span class="price">\u20b9 7,990</span>',
 u'<span class="price">\u20b9 7,990</span>',
 u'<span class="price">\u20b9 7,990</span>',
 u'<span class="price">\u20b9 7,990</span>',
 u'<span class="price">\u20b9 2,990</span>']
>>> s =set()
>>> for x in l:
    import re
    if not 'old-price' in x:
        m = re.match('<span[^>]*>([^<]*)</span>', x)
        if m is None:
            print x
        s.add(m.group(1).strip())


>>> s
set([u'\u20b9 5,990', u'\u20b9 2,990', u'\u20b9 7,990'])

我希望你能继续下去!在

相关问题 更多 >