Python
05 May 2011
 
 
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
def process_deal(self, deal):
"""
Parse deal's details.
"""
self.g.go(deal['url'])
base_url = 'http://%s' % urlsplit(deal['url']).hostname
"""
title
big_image_url
price
price_real
discount_percent
discount
buy-button
active
sold_count
"""
title = self.g.css_text('.only-today a')
title = re.compile(ur'\d+\sруб\.\sвместо\s\d+ руб\.', re.U).sub('', title).strip()
deal['title'] = title
deal['big_image_url'] = base_url + self.g.css('.large-photo img').get('src')
deal['price'] = self.g.css_number('.price a strong')
deal['price_real'] = self.g.css_number('.discount-today .value strong')
deal['discount_percent'] = self.g.css_number('.discount-today .your-discount strong')
deal['discount'] = self.g.css_number('.discount-today .profit strong')
buy_block = self.g.itercss('.buy-btn')
if len(buy_block):
deal['active'] = True
rex = re.compile(r'var dthen = new Date \((\d+)')
deal['expiry'] = datetime.fromtimestamp(int(rex.search(self.g.response.body).group(1)))
else:
deal['active'] = False
try:
deal['sold_count'] = self.g.css_number('.discount-today-left-5 span')
except IndexError, ValueError:
deal['sold_count'] = 0
return deal