diff --git a/modules/logicimmo/pages.py b/modules/logicimmo/pages.py index 869a7a9fb6d40dc3a4814915e36d78c138fc81e6..df84e9a95cb891fa14157a0db4c357bf2d9c5f6d 100644 --- a/modules/logicimmo/pages.py +++ b/modules/logicimmo/pages.py @@ -90,7 +90,7 @@ def obj_type(self): obj_advert_type = ADVERT_TYPES.PROFESSIONAL def obj_house_type(self): - house_type = CleanText('.//div[has-class("offer-type")]')(self).lower() + house_type = CleanText('.//h2[@class="offerMainFeatures"]/div')(self).lower() if house_type == "appartement": return HOUSE_TYPES.APART elif house_type == "maison": @@ -104,10 +104,16 @@ def obj_house_type(self): obj_title = CleanText(CleanHTML('//meta[@itemprop="name"]/@content')) obj_area = CleanDecimal(Regexp(CleanText(CleanHTML('//meta[@itemprop="name"]/@content')), - '(.*?)(\d*) m\xb2(.*?)', '\\2', default=NotAvailable), + '(.*?)(\d*)m\xb2(.*?)', '\\2', default=NotAvailable), default=NotAvailable) - obj_rooms = CleanDecimal('//div[has-class("offer-info")]//span[has-class("offer-rooms-number")]', - default=NotAvailable) + obj_rooms = CleanDecimal( + Regexp( + CleanText('.//h2[@class="offerMainFeatures"]'), + '(\d) pièce', + default=NotAvailable + ), + default=NotAvailable + ) obj_cost = CleanDecimal('//*[@itemprop="price"]', default=0) obj_currency = Currency( '//*[@itemprop="price"]' @@ -125,7 +131,7 @@ def obj_utilities(self): u'.* Mis à jour : (\d{2}/\d{2}/\d{4}).*'), dayfirst=True) obj_text = CleanHTML('//div[has-class("offer-description-text")]/meta[@itemprop="description"]/@content') - obj_location = CleanText('//*[@itemprop="address"]') + obj_location = CleanText('//div[@itemprop="address"]') obj_station = CleanText( '//div[has-class("offer-description-metro")]', default=NotAvailable @@ -265,7 +271,7 @@ class item(ItemElement): obj_advert_type = ADVERT_TYPES.PROFESSIONAL def obj_house_type(self): - house_type = CleanText('.//div[has-class("offer-details-type")]/a')(self).split(' ')[0].lower() + house_type = CleanText('.//div[has-class("offer-details-caracteristik")]/meta[@itemprop="name"]/@content')(self).lower() if house_type == "appartement": return HOUSE_TYPES.APART elif house_type == "maison": diff --git a/weboob/tools/capabilities/housing/housing_test.py b/weboob/tools/capabilities/housing/housing_test.py index 948d59e84d9b12bac3975662421d8cfc88d917c0..c48ca84389de00f145e7e2f41dbda1d83d39e6c0 100755 --- a/weboob/tools/capabilities/housing/housing_test.py +++ b/weboob/tools/capabilities/housing/housing_test.py @@ -93,7 +93,7 @@ def check_housing_lists(self, query): return results def check_single_housing_all(self, housing, - type, house_types, advert_type): + type, house_type, advert_type): for field in self.FIELDS_ALL_SINGLE_HOUSING: self.assertNotEmpty(housing, field) if 'type' in self.FIELDS_ALL_SINGLE_HOUSING: @@ -106,8 +106,8 @@ def check_single_housing_all(self, housing, else: self.assertEqual(housing.type, type) if 'house_type' in self.FIELDS_ALL_SINGLE_HOUSING: - if not empty(house_types): - self.assertEqual(housing.house_type, house_types) + if not empty(house_type): + self.assertEqual(housing.house_type, house_type) else: self.assertNotEmpty(housing, 'house_type') if 'advert_type' in self.FIELDS_ALL_SINGLE_HOUSING: