Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将正则表达式与Scrapy一起使用_Python_Scrapy - Fatal编程技术网

Python 如何将正则表达式与Scrapy一起使用

Python 如何将正则表达式与Scrapy一起使用,python,scrapy,Python,Scrapy,我想报废一辆汽车 并提取项目的以下价格,但同一项目有多个价格如何正确筛选项目的价格 下面是解析第=1页上项目价格的代码: hxs.select("//div[@class='category-products']/ul/li//div[@class='price-box']//span[@class='price']").extract() 其中: [u'<span class="price" id="old-price-8963">\n \u

我想报废一辆汽车 并提取项目的以下价格,但同一项目有多个价格如何正确筛选项目的价格

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

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

[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>']
[u'\n\u20b9 8990',
u'\n\u20b9 5990',
u'\n\u20b9 8990',
u'\n\u20b9 5990',
u'\u20b9 7990',
u'\u20b9 7990',
u'\u20b9 7990',
u'\u20b9 7990',
u'\u20b9 7990',
u'\u20b9 2990']
如果前两个价格是针对相同的项目…第二个项目也是如此…但对于其他项目,它们只有一个价格…有人能给我一个解决方法吗…

l=[u'\n\u20b9 8990',
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'])
u'\n\u20b9 5990', u'\n\u20b9 8990', u'\n\u20b9 5990', u'\u20b9 7990', u'\u20b9 7990', u'\u20b9 7990', u'\u20b9 7990', u'\u20b9 7990', u'\u20b9 2990'] >>>s=集合() >>>对于l中的x: 进口稀土 如果不是x中的“旧价格”:
m=re.match(']*>([^您想要哪个价格?产品价格/价格不是旧价格。。。。