Python 如何将正则表达式与Scrapy一起使用
我想报废一辆汽车 并提取项目的以下价格,但同一项目有多个价格如何正确筛选项目的价格 下面是解析第=1页上项目价格的代码: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
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(']*>([^您想要哪个价格?产品价格/价格不是旧价格。。。。