improve deep search in popolemploi
This commit is contained in:
parent
46b5bb2097
commit
a63dcdfa8e
3 changed files with 361 additions and 148 deletions
|
|
@ -39,143 +39,142 @@ class PopolemploiBackend(BaseBackend, ICapJob):
|
||||||
BROWSER = PopolemploiBrowser
|
BROWSER = PopolemploiBrowser
|
||||||
|
|
||||||
places_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
places_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
||||||
'': u'Tout type de lieux',
|
'100|FRANCE|FRANCE': u'France entière',
|
||||||
'FRANCE_01': u'France entière',
|
'102|REGION|checkbox': u'Alsace',
|
||||||
'REGION_42': u'Alsace',
|
'103|DEPARTEMENT|checkbox_66': u'-- Rhin (Bas) (67)',
|
||||||
'DEPARTEMENT_67': u'-- Rhin (Bas) (67)',
|
'104|DEPARTEMENT|checkbox_67': u'-- Rhin (Haut) (68)',
|
||||||
'DEPARTEMENT_68': u'-- Rhin (Haut) (68)',
|
'105|REGION|checkbox_0': u'Aquitaine',
|
||||||
'REGION_72': u'Aquitaine',
|
'106|DEPARTEMENT|checkbox_21': u'-- Dordogne (24)',
|
||||||
'DEPARTEMENT_24': u'-- Dordogne (24)',
|
'107|DEPARTEMENT|checkbox_32': u'-- Gironde (33)',
|
||||||
'DEPARTEMENT_33': u'-- Gironde (33)',
|
'108|DEPARTEMENT|checkbox_39': u'-- Landes (40)',
|
||||||
'DEPARTEMENT_40': u'-- Landes (40)',
|
'109|DEPARTEMENT|checkbox_46': u'-- Lot et Garonne (47)',
|
||||||
'DEPARTEMENT_47': u'-- Lot et Garonne (47)',
|
'110|DEPARTEMENT|checkbox_63': u'-- Pyrénées Atlantiques (64)',
|
||||||
'DEPARTEMENT_64': u'-- Pyrénées Atlantiques (64)',
|
'111|REGION|checkbox_1': u'Auvergne',
|
||||||
'REGION_83': u'Auvergne',
|
'112|DEPARTEMENT|checkbox_1': u'-- Allier (03)',
|
||||||
'DEPARTEMENT_03': u'-- Allier (03)',
|
'113|DEPARTEMENT|checkbox_13': u'-- Cantal (15)',
|
||||||
'DEPARTEMENT_15': u'-- Cantal (15)',
|
'114|DEPARTEMENT|checkbox_42': u'-- Loire (Haute) (43)',
|
||||||
'DEPARTEMENT_43': u'-- Loire (Haute) (43)',
|
'115|DEPARTEMENT|checkbox_62': u'-- Puy de Dôme (63)',
|
||||||
'DEPARTEMENT_63': u'-- Puy de Dôme (63)',
|
'116|REGION|checkbox_2': u'Bourgogne',
|
||||||
'REGION_26': u'Bourgogne',
|
'117|DEPARTEMENT|checkbox_18': u'-- Côte d\'Or (21)',
|
||||||
'DEPARTEMENT_21': u'-- Côte d\'Or (21)',
|
'118|DEPARTEMENT|checkbox_57': u'-- Nièvre (58)',
|
||||||
'DEPARTEMENT_58': u'-- Nièvre (58)',
|
'119|DEPARTEMENT|checkbox_70': u'-- Saône et Loire (71)',
|
||||||
'DEPARTEMENT_71': u'-- Saône et Loire (71)',
|
'120|DEPARTEMENT|checkbox_88': u'-- Yonne (89)',
|
||||||
'DEPARTEMENT_89': u'-- Yonne (89)',
|
'121|REGION|checkbox_3': u'Bretagne',
|
||||||
'REGION_53': u'Bretagne',
|
'122|DEPARTEMENT|checkbox_19': u'-- Côtes d\'Armor (22)',
|
||||||
'DEPARTEMENT_22': u'-- Côtes d\'Armor (22)',
|
'123|DEPARTEMENT|checkbox_26': u'-- Finistère (29)',
|
||||||
'DEPARTEMENT_29': u'-- Finistère (29)',
|
'124|DEPARTEMENT|checkbox_34': u'-- Ille et Vilaine (35)',
|
||||||
'DEPARTEMENT_35': u'-- Ille et Vilaine (35)',
|
'125|DEPARTEMENT|checkbox_54': u'-- Morbihan (56)',
|
||||||
'DEPARTEMENT_56': u'-- Morbihan (56)',
|
'126|REGION|checkbox_4': u'Centre',
|
||||||
'REGION_24': u'Centre',
|
'127|DEPARTEMENT|checkbox_16': u'-- Cher (18)',
|
||||||
'DEPARTEMENT_18': u'-- Cher (18)',
|
'128|DEPARTEMENT|checkbox_25': u'-- Eure et Loir (28)',
|
||||||
'DEPARTEMENT_28': u'-- Eure etLoir (28)',
|
'129|DEPARTEMENT|checkbox_35': u'-- Indre (36)',
|
||||||
'DEPARTEMENT_36': u'-- Indre (36)',
|
'130|DEPARTEMENT|checkbox_36': u'-- Indre et Loire (37)',
|
||||||
'DEPARTEMENT_37': u'-- Indre et Loire (37)',
|
'131|DEPARTEMENT|checkbox_40': u'-- Loir et Cher (41)',
|
||||||
'DEPARTEMENT_41': u'-- Loir et Cher (41)',
|
'132|DEPARTEMENT|checkbox_44': u'-- Loiret (45)',
|
||||||
'DEPARTEMENT_45': u'-- Loiret (45)',
|
'133|REGION|checkbox_5': u'Champagne Ardenne',
|
||||||
'REGION_21': u'Champagne Ardenne',
|
'134|DEPARTEMENT|checkbox_6': u'-- Ardennes (08)',
|
||||||
'DEPARTEMENT_08': u'-- Ardennes (08)',
|
'135|DEPARTEMENT|checkbox_8': u'-- Aube (10)',
|
||||||
'DEPARTEMENT_10': u'-- Aube (10)',
|
'136|DEPARTEMENT|checkbox_50': u'-- Marne (51)',
|
||||||
'DEPARTEMENT_51': u'-- Marne (51)',
|
'137|DEPARTEMENT|checkbox_51': u'-- Marne (Haute) (52)',
|
||||||
'DEPARTEMENT_52': u'-- Marne (Haute) (52)',
|
'138|REGION|checkbox_6': u'Corse',
|
||||||
'REGION_94': u'Corse',
|
'139|DEPARTEMENT|checkbox_26': u'-- Corse du Sud (2A)',
|
||||||
'DEPARTEMENT_2A': u'-- Corse du Sud (2A)',
|
'140|DEPARTEMENT|checkbox_27': u'-- Haute Corse (2B)',
|
||||||
'DEPARTEMENT_2B': u'-- Haute Corse (2B)',
|
'141|REGION|checkbox_7': u'Franche Comté',
|
||||||
'REGION_43': u'Franche Comté',
|
'142|DEPARTEMENT|checkbox_89': u'-- Belfort (Territoire de) (90)',
|
||||||
'DEPARTEMENT_90': u'-- Belfort (Territoire de) (90)',
|
'143|DEPARTEMENT|checkbox_22': u'-- Doubs (25)',
|
||||||
'DEPARTEMENT_25': u'-- Doubs (25)',
|
'144|DEPARTEMENT|checkbox_38': u'-- Jura (39)',
|
||||||
'DEPARTEMENT_39': u'-- Jura (39)',
|
'145|DEPARTEMENT|checkbox_69': u'-- Saône (Haute) (70)',
|
||||||
'DEPARTEMENT_70': u'-- Saône (Haute) (70)',
|
'146|REGION|checkbox_8': u'Ile de France',
|
||||||
'REGION_11': u'Ile de France',
|
'147|DEPARTEMENT|checkbox_90': u'-- Essonne (91)',
|
||||||
'DEPARTEMENT_91': u'-- Essonne (91)',
|
'148|DEPARTEMENT|checkbox_91': u'-- Hauts de Seine (92)',
|
||||||
'DEPARTEMENT_92': u'-- Hauts de Seine (92)',
|
'149|DEPARTEMENT|checkbox_74': u'-- Paris (Dept.) (75)',
|
||||||
'DEPARTEMENT_75': u'-- Paris (Dept.) (75)',
|
'150|DEPARTEMENT|checkbox_92': u'-- Seine Saint Denis (93)',
|
||||||
'DEPARTEMENT_93': u'-- Seine Saint Denis (93)',
|
'151|DEPARTEMENT|checkbox_76': u'-- Seine et Marne (77)',
|
||||||
'DEPARTEMENT_77': u'-- Seine et Marne (77)',
|
'152|DEPARTEMENT|checkbox_94': u'-- Val d\'Oise (95)',
|
||||||
'DEPARTEMENT_95': u'-- Val d\'Oise (95)',
|
'153|DEPARTEMENT|checkbox_93': u'-- Val de Marne (94)',
|
||||||
'DEPARTEMENT_94': u'-- Val de Marne (94)',
|
'154|DEPARTEMENT|checkbox_77': u'-- Yvelines (78)',
|
||||||
'DEPARTEMENT_78': u'-- Yvelines (78)',
|
'155|REGION|checkbox_9': u'Languedoc Roussillon',
|
||||||
'REGION_91': u'Languedoc Roussillon',
|
'156|DEPARTEMENT|checkbox_9': u'-- Aude (11)',
|
||||||
'DEPARTEMENT_11': u'-- Aude (11)',
|
'157|DEPARTEMENT|checkbox_39': u'-- Gard (30)',
|
||||||
'DEPARTEMENT_30': u'-- Gard (30)',
|
'158|DEPARTEMENT|checkbox_33': u'-- Hérault (34)',
|
||||||
'DEPARTEMENT_34': u'-- Hérault (34)',
|
'159|DEPARTEMENT|checkbox_47': u'-- Lozère (48)',
|
||||||
'DEPARTEMENT_48': u'-- Lozère (48)',
|
'161|DEPARTEMENT|checkbox_65': u'-- Pyrénées Orientales (66)',
|
||||||
'DEPARTEMENT_66': u'-- Pyrénées Orientales (66)',
|
'162|REGION|checkbox_10': u'Limousin',
|
||||||
'REGION_74': u'Limousin',
|
'163|DEPARTEMENT|checkbox_17': u'-- Corrèze (19)',
|
||||||
'DEPARTEMENT_19': u'-- Corrèze (19)',
|
'164|DEPARTEMENT|checkbox_20': u'-- Creuse (23)',
|
||||||
'DEPARTEMENT_23': u'-- Creuse (23)',
|
'165|DEPARTEMENT|checkbox_86': u'-- Vienne (Haute) (87)',
|
||||||
'DEPARTEMENT_87': u'-- Vienne (Haute) (87)',
|
'166|REGION|checkbox_11': u'Lorraine',
|
||||||
'REGION_41': u'Lorraine',
|
'167|DEPARTEMENT|checkbox_53': u'-- Meurthe et Moselle (54)',
|
||||||
'DEPARTEMENT_54': u'-- Meurthe et Moselle (54)',
|
'168|DEPARTEMENT|checkbox_54': u'-- Meuse (55)',
|
||||||
'DEPARTEMENT_55': u'-- Meuse (55)',
|
'169|DEPARTEMENT|checkbox_56': u'-- Moselle (57)',
|
||||||
'DEPARTEMENT_57': u'-- Moselle (57)',
|
'170|DEPARTEMENT|checkbox_87': u'-- Vosges (88)',
|
||||||
'DEPARTEMENT_88': u'-- Vosges (88)',
|
'171|REGION|checkbox_12': u'Midi Pyrénées',
|
||||||
'REGION_73': u'Midi Pyrénées',
|
'172|DEPARTEMENT|checkbox_7': u'-- Ariège (09)',
|
||||||
'DEPARTEMENT_09': u'-- Ariège (09)',
|
'173|DEPARTEMENT|checkbox_10': u'-- Aveyron (12)',
|
||||||
'DEPARTEMENT_12': u'-- Aveyron (12)',
|
'174|DEPARTEMENT|checkbox_30': u'-- Garonne (Haute) (31)',
|
||||||
'DEPARTEMENT_31': u'-- Garonne (Haute) (31)',
|
'175|DEPARTEMENT|checkbox_31': u'-- Gers (32)',
|
||||||
'DEPARTEMENT_32': u'-- Gers (32)',
|
'176|DEPARTEMENT|checkbox_45': u'-- Lot (46)',
|
||||||
'DEPARTEMENT_46': u'-- Lot (46)',
|
'177|DEPARTEMENT|checkbox_64': u'-- Pyrénées (Hautes) (65)',
|
||||||
'DEPARTEMENT_65': u'-- Pyrénées (Hautes) (65)',
|
'178|DEPARTEMENT|checkbox_80': u'-- Tarn (81)',
|
||||||
'DEPARTEMENT_81': u'-- Tarn (81)',
|
'179|DEPARTEMENT|checkbox_81': u'-- Tarn et Garonne (82)',
|
||||||
'DEPARTEMENT_82': u'-- Tarn et Garonne (82)',
|
'180|REGION|checkbox_13': u'Nord Pas de Calais',
|
||||||
'REGION_31': u'Nord Pas de Calais',
|
'181|DEPARTEMENT|checkbox_58': u'-- Nord (59)',
|
||||||
'DEPARTEMENT_59': u'-- Nord (59)',
|
'182|DEPARTEMENT|checkbox_61': u'-- Pas de Calais (62)',
|
||||||
'DEPARTEMENT_62': u'-- Pas de Calais (62)',
|
'183|REGION|checkbox_14': u'Normandie (Basse)',
|
||||||
'REGION_25': u'Normandie (Basse)',
|
'184|DEPARTEMENT|checkbox_12': u'-- Calvados (14)',
|
||||||
'DEPARTEMENT_14': u'-- Calvados (14)',
|
'185|DEPARTEMENT|checkbox_49': u'-- Manche (50)',
|
||||||
'DEPARTEMENT_50': u'-- Manche (50)',
|
'186|DEPARTEMENT|checkbox_60': u'-- Orne (61)',
|
||||||
'DEPARTEMENT_61': u'-- Orne (61)',
|
'187|REGION|checkbox_15': u'Normandie (Haute)',
|
||||||
'REGION_23': u'Normandie (Haute)',
|
'188|DEPARTEMENT|checkbox_24': u'-- Eure (27)',
|
||||||
'DEPARTEMENT_27': u'-- Eure (27)',
|
'189|DEPARTEMENT|checkbox_75': u'-- Seine Maritime (76)',
|
||||||
'DEPARTEMENT_76': u'-- Seine Maritime (76)',
|
'190|REGION|checkbox_16': u'Pays de la Loire',
|
||||||
'REGION_52': u'Pays de la Loire',
|
'191|DEPARTEMENT|checkbox_43': u'-- Loire Atlantique (44)',
|
||||||
'DEPARTEMENT_44': u'-- Loire Atlantique (44)',
|
'192|DEPARTEMENT|checkbox_48': u'-- Maine et Loire (49)',
|
||||||
'DEPARTEMENT_49': u'-- Maine et Loire (49)',
|
'193|DEPARTEMENT|checkbox_52': u'-- Mayenne (53)',
|
||||||
'DEPARTEMENT_53': u'-- Mayenne (53)',
|
'194|DEPARTEMENT|checkbox_71': u'-- Sarthe (72)',
|
||||||
'DEPARTEMENT_72': u'-- Sarthe (72)',
|
'195|DEPARTEMENT|checkbox_84': u'-- Vendée (85)',
|
||||||
'DEPARTEMENT_85': u'-- Vendée (85)',
|
'196|REGION|checkbox_17': u'Picardie',
|
||||||
'REGION_22': u'Picardie',
|
'197|DEPARTEMENT|checkbox_0': u'-- Aisne (02)',
|
||||||
'DEPARTEMENT_02': u'-- Aisne (02)',
|
'198|DEPARTEMENT|checkbox_59': u'-- Oise (60)',
|
||||||
'DEPARTEMENT_60': u'-- Oise (60)',
|
'199|DEPARTEMENT|checkbox_79': u'-- Somme (80)',
|
||||||
'DEPARTEMENT_80': u'-- Somme (80)',
|
'200|REGION|checkbox_18': u'Poitou Charentes',
|
||||||
'REGION_54': u'Poitou Charentes',
|
'201|DEPARTEMENT|checkbox_14': u'-- Charente (16)',
|
||||||
'DEPARTEMENT_16': u'-- Charente (16)',
|
'202|DEPARTEMENT|checkbox_15': u'-- Charente Maritime (17)',
|
||||||
'DEPARTEMENT_17': u'-- Charente Maritime (17)',
|
'203|DEPARTEMENT|checkbox_78': u'-- Sèvres (Deux) (79)',
|
||||||
'DEPARTEMENT_79': u'-- Sèvres (Deux) (79)',
|
'204|DEPARTEMENT|checkbox_85': u'-- Vienne (86)',
|
||||||
'DEPARTEMENT_86': u'-- Vienne (86)',
|
'205|REGION|checkbox_19': u'Provence Alpes Côte d\'Azur',
|
||||||
'REGION_93': u'Provence Alpes Côte d\'Azur',
|
'206|DEPARTEMENT|checkbox_3': u'-- Alpes (Hautes) (05)',
|
||||||
'DEPARTEMENT_05': u'-- Alpes (Hautes) (05)',
|
'207|DEPARTEMENT|checkbox_4': u'-- Alpes Maritimes (06)',
|
||||||
'DEPARTEMENT_06': u'-- Alpes Maritimes (06)',
|
'208|DEPARTEMENT|checkbox_2': u'-- Alpes de Haute Provence (04)',
|
||||||
'DEPARTEMENT_04': u'-- Alpes de Haute Provence (04)',
|
'209|DEPARTEMENT|checkbox_13': u'-- Bouches du Rhône (13)',
|
||||||
'DEPARTEMENT_13': u'-- Bouches du Rhône (13)',
|
'210|DEPARTEMENT|checkbox_82': u'-- Var (83)',
|
||||||
'DEPARTEMENT_83': u'-- Var (83)',
|
'211|DEPARTEMENT|checkbox_83': u'-- Vaucluse (84)',
|
||||||
'DEPARTEMENT_84': u'-- Vaucluse (84)',
|
'212|REGION|checkbox_20': u'Rhône Alpes',
|
||||||
'REGION_82': u'Rhône Alpes',
|
'213|DEPARTEMENT|checkbox': u'-- Ain (01)',
|
||||||
'DEPARTEMENT_01': u'-- Ain (01)',
|
'214|DEPARTEMENT|checkbox_5': u'-- Ardèche (07)',
|
||||||
'DEPARTEMENT_07': u'-- Ardèche (07)',
|
'215|DEPARTEMENT|checkbox_23': u'-- Drôme (26)',
|
||||||
'DEPARTEMENT_26': u'-- Drôme (26)',
|
'216|DEPARTEMENT|checkbox_37': u'-- Isère (38)',
|
||||||
'DEPARTEMENT_38': u'-- Isère (38)',
|
'217|DEPARTEMENT|checkbox_41': u'-- Loire (42)',
|
||||||
'DEPARTEMENT_42': u'-- Loire (42)',
|
'218|DEPARTEMENT|checkbox_68': u'-- Rhône (69)',
|
||||||
'DEPARTEMENT_69': u'-- Rhône (69)',
|
'219|DEPARTEMENT|checkbox_72': u'-- Savoie (73)',
|
||||||
'DEPARTEMENT_73': u'-- Savoie (73)',
|
'220|DEPARTEMENT|checkbox_73': u'-- Savoie (Haute) (74)',
|
||||||
'DEPARTEMENT_74': u'-- Savoie (Haute) (74)',
|
'221|REGION|checkbox_21': u'Région Antilles / Guyane',
|
||||||
'REGION_96': u'Région Antilles / Guyane',
|
'222|DEPARTEMENT|checkbox_95': u'-- Guadeloupe (971)',
|
||||||
'DEPARTEMENT_971': u'-- Guadeloupe (971)',
|
'223|DEPARTEMENT|checkbox_97': u'-- Guyane (973)',
|
||||||
'DEPARTEMENT_973': u'-- Guyane (973)',
|
'224|DEPARTEMENT|checkbox_96': u'-- Martinique (972)',
|
||||||
'DEPARTEMENT_972': u'-- Martinique (972)',
|
'225|DEPARTEMENT|checkbox_101': u'-- Saint Barthélémy (977)',
|
||||||
'DEPARTEMENT_977': u'-- Saint Barthélémy (977)',
|
'226|DEPARTEMENT|checkbox_102': u'-- Saint Martin (978)',
|
||||||
'DEPARTEMENT_978': u'-- Saint Martin (978)',
|
'227|REGION|checkbox_22': u'Région Atlantique Nord',
|
||||||
'REGION_98': u'Région Atlantique Nord',
|
'228|DEPARTEMENT|checkbox_99': u'-- Saint Pierre et Miquelon (975)',
|
||||||
'DEPARTEMENT_975': u'-- Saint Pierre et Miquelon (975)',
|
'229|REGION|checkbox_23': u'Région Pacifique',
|
||||||
'REGION_95': u'Région Pacifique',
|
'230|DEPARTEMENT|checkbox_107': u'-- Ile de Clipperton (989)',
|
||||||
'DEPARTEMENT_989': u'-- Ile de Clipperton (989)',
|
'231|DEPARTEMENT|checkbox_106': u'-- Nouvelle Calédonie (988)',
|
||||||
'DEPARTEMENT_988': u'-- Nouvelle Calédonie (988)',
|
'232|DEPARTEMENT|checkbox_105': u'-- Polynésie française (987)',
|
||||||
'DEPARTEMENT_987': u'-- Polynésie française (987)',
|
'233|DEPARTEMENT|checkbox_103': u'-- Terres australes/antarctiques (984)',
|
||||||
'DEPARTEMENT_984': u'-- Terres australes/antarctiques (984)',
|
'234|DEPARTEMENT|checkbox_104': u'-- Wallis et Futuna (986)',
|
||||||
'DEPARTEMENT_986': u'-- Wallis et Futuna (986)',
|
'235|REGION|checkbox_24': u'Région Réunion / Mayotte',
|
||||||
'REGION_97': u'Région Réunion / Mayotte',
|
'236|DEPARTEMENT|checkbox_100': u'-- Mayotte (976)',
|
||||||
'DEPARTEMENT_976': u'-- Mayotte (976)',
|
'237|DEPARTEMENT|checkbox_98': u'-- Réunion (974)',
|
||||||
'DEPARTEMENT_974': u'-- Réunion (974)',
|
|
||||||
}.iteritems())])
|
}.iteritems())])
|
||||||
|
|
||||||
type_contrat_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
type_contrat_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
||||||
|
|
@ -196,9 +195,140 @@ class PopolemploiBackend(BaseBackend, ICapJob):
|
||||||
'6': u'Profession commerciale',
|
'6': u'Profession commerciale',
|
||||||
}.iteritems())])
|
}.iteritems())])
|
||||||
|
|
||||||
|
salary_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
||||||
|
' ': u'Tout salaire annuel',
|
||||||
|
'FOURCHETTE1': u'Moins de 15000',
|
||||||
|
'FOURCHETTE2': u'Compris entre 15000 et 18000',
|
||||||
|
'FOURCHETTE3': u'Compris entre 18000 et 21000',
|
||||||
|
'FOURCHETTE4': u'Compris entre 21000 et 24000',
|
||||||
|
'FOURCHETTE5': u'Compris entre 24000 et 36000',
|
||||||
|
'FOURCHETTE6': u'Compris entre 36000 et 60000',
|
||||||
|
'FOURCHETTE7': u'Supérieur à 60000',
|
||||||
|
}.iteritems())])
|
||||||
|
|
||||||
|
qualification_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
||||||
|
' ': u'Toute Qualification',
|
||||||
|
'1': u'Manoeuvre',
|
||||||
|
'2': u'Ouvrier spécialisé',
|
||||||
|
'3': u'Ouvrier qualifié (P1,P2)',
|
||||||
|
'4': u'Ouvrier qualifié (P3,P4,OHQ)',
|
||||||
|
'5': u'Employé non qualifié',
|
||||||
|
'6': u'Employé qualifié',
|
||||||
|
'7': u'Technicien',
|
||||||
|
'8': u'Agent de maîtrise',
|
||||||
|
'9': u'Cadre',
|
||||||
|
}.iteritems())])
|
||||||
|
|
||||||
|
limit_date_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
||||||
|
'': u'Aucune limite',
|
||||||
|
'UN_JOUR': u'Hier',
|
||||||
|
'TROIS_JOUR': u'3 jours',
|
||||||
|
'UNE_SEMAINE': u'1 semaine',
|
||||||
|
'DEUX_SEMAINES': u'2 semaines',
|
||||||
|
'UN_MOIS': u'1 mois',
|
||||||
|
'TROIS_MOIS': u'3 mois',
|
||||||
|
}.iteritems())])
|
||||||
|
|
||||||
|
domain_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
|
||||||
|
' ': u'Tout secteur d\'activité',
|
||||||
|
'88': u'Action sociale sans hebergt',
|
||||||
|
'82': u'Activ.admin/soutien entreprise',
|
||||||
|
'66': u'Activ. auxiliaire finance/assu',
|
||||||
|
'90': u'Activ. crea/artistiq/spectacle',
|
||||||
|
'77': u'Activ. de loc. et loc.-bail',
|
||||||
|
'70': u'Activ. siege soc/conseil gest.',
|
||||||
|
'93': u'Activ. sportive/recreat/loisir',
|
||||||
|
'69': u'Activite juridique/comptable',
|
||||||
|
'94': u'Activite organisations assoc.',
|
||||||
|
'86': u'Activite pr la sante humaine',
|
||||||
|
'53': u'Activites de poste/courrier',
|
||||||
|
'64': u'Activite services financiers',
|
||||||
|
'68': u'Activites immobilieres',
|
||||||
|
'62': u'Activites informatiques',
|
||||||
|
'78': u'Activites liees a l\'emploi',
|
||||||
|
'75': u'Activites veterinaires',
|
||||||
|
'84': u'Administration publiq/defense',
|
||||||
|
'79': u'Agences voyage/activ. liees',
|
||||||
|
'71': u'Archi/ing/control/analyse tech',
|
||||||
|
'65': u'Assurance',
|
||||||
|
'32': u'Autre industrie manufacturiere',
|
||||||
|
'74': u'Autres activ.spe scientif/tech',
|
||||||
|
'08': u'Autres industries extractives',
|
||||||
|
'91': u'Biblio/ musée/ activ. culturel',
|
||||||
|
'36': u'Captage/traitement/distrib.eau',
|
||||||
|
'19': u'Cokefaction et raffinage',
|
||||||
|
'37': u'Collecte/traitement eaux usees',
|
||||||
|
'38': u'Collecte/traitnt/elimin dechet',
|
||||||
|
'45': u'Commerce/reparation auto/moto',
|
||||||
|
'47': u'Commerce detail sauf auto/moto',
|
||||||
|
'46': u'Commerce gros sauf auto/moto',
|
||||||
|
'41': u'Construction de batiments',
|
||||||
|
'01': u'Cult./prod. animale, chasse',
|
||||||
|
'39': u'Depollution/autre gest. dechet',
|
||||||
|
'58': u'Edition',
|
||||||
|
'80': u'Enquetes et securite',
|
||||||
|
'85': u'Enseignement',
|
||||||
|
'52': u'Entreposage/sce auxil. transp',
|
||||||
|
'06': u'Extraction d\'hydrocarbures',
|
||||||
|
'05': u'Extraction houille/ lignite',
|
||||||
|
'07': u'Extraction minerais metalliq.',
|
||||||
|
'26': u'Fab. prod. info/electro/optiq',
|
||||||
|
'22': u'Fabr. prod. caoutchouc/plastiq',
|
||||||
|
'30': u'Fabric. autre materiel transp.',
|
||||||
|
'23': u'Fabric.autre produit non metal',
|
||||||
|
'28': u'Fabric. autres machines/equip.',
|
||||||
|
'27': u'Fabric. d\'equip. electriques',
|
||||||
|
'31': u'Fabrication de meubles',
|
||||||
|
'12': u'Fabrication produit base tabac',
|
||||||
|
'25': u'Fabrication produits metalliq',
|
||||||
|
'42': u'Genie civil',
|
||||||
|
'55': u'Hebergement',
|
||||||
|
'87': u'Hebergt médico-social/ social',
|
||||||
|
'18': u'Imprimerie/reprod. enregistre.',
|
||||||
|
'00': u'Indetermine',
|
||||||
|
'29': u'Industrie automobile',
|
||||||
|
'20': u'Industrie chimique',
|
||||||
|
'14': u'Industrie de l\'habillement',
|
||||||
|
'11': u'Industrie des boissons',
|
||||||
|
'15': u'Industrie du cuir/la chaussure',
|
||||||
|
'17': u'Industrie du papier/du carton',
|
||||||
|
'21': u'Industrie pharmaceutique',
|
||||||
|
'10': u'Industries alimentaires',
|
||||||
|
'13': u'Industrie textile',
|
||||||
|
'24': u'Metallurgie',
|
||||||
|
'92': u'Orga. jeux hasard/argent',
|
||||||
|
'99': u'Organisations et organismes',
|
||||||
|
'03': u'Peche et aquaculture',
|
||||||
|
'35': u'Prod./distrib.elec/gaz/vap/air',
|
||||||
|
'59': u'Prod film cine/video/tv/musiq',
|
||||||
|
'98': u'Production menage bien propre',
|
||||||
|
'60': u'Programmation et diffusion',
|
||||||
|
'73': u'Publicite et etudes de marche',
|
||||||
|
'72': u'Rech.-dev. scientifique',
|
||||||
|
'33': u'Repar./instal. machines/equip.',
|
||||||
|
'95': u'Repar.pc/biens perso/domestiq',
|
||||||
|
'56': u'Restauration',
|
||||||
|
'97': u'Sce domestique pr particuliers',
|
||||||
|
'81': u'Services bat/amenagnt paysager',
|
||||||
|
'63': u'Services d\'information',
|
||||||
|
'96': u'Services personnels',
|
||||||
|
'09': u'Soutien industries extractives',
|
||||||
|
'02': u'Sylvicult./exploit. forestiere',
|
||||||
|
'61': u'Telecommunications',
|
||||||
|
'51': u'Transports aeriens',
|
||||||
|
'50': u'Transports par eau',
|
||||||
|
'49': u'Transports terrestres',
|
||||||
|
'16': u'Travail bois/fab. article bois',
|
||||||
|
'43': u'Travaux constr.specialises',
|
||||||
|
}.iteritems())])
|
||||||
|
|
||||||
CONFIG = BackendConfig(Value('metier', label='Job name', masked=False, default=''),
|
CONFIG = BackendConfig(Value('metier', label='Job name', masked=False, default=''),
|
||||||
Value('place', label=u'Place', choices=places_choices, default='FRANCE_01'),
|
Value('place', label=u'Place', choices=places_choices, default='100|FRANCE|FRANCE'),
|
||||||
Value('contrat', label=u'Contract', choices=type_contrat_choices, default=''))
|
Value('contrat', label=u'Contract', choices=type_contrat_choices, default=''),
|
||||||
|
Value('salary', label=u'Salary', choices=salary_choices, default=''),
|
||||||
|
Value('qualification', label=u'Qualification', choices=qualification_choices, default=''),
|
||||||
|
Value('limit_date', label=u'Date limite', choices=limit_date_choices, default=''),
|
||||||
|
Value('domain', label=u'Domain', choices=domain_choices, default=''))
|
||||||
|
|
||||||
def search_job(self, pattern=None):
|
def search_job(self, pattern=None):
|
||||||
with self.browser:
|
with self.browser:
|
||||||
|
|
@ -207,7 +337,11 @@ class PopolemploiBackend(BaseBackend, ICapJob):
|
||||||
def advanced_search_job(self):
|
def advanced_search_job(self):
|
||||||
return self.browser.advanced_search_job(metier=self.config['metier'].get(),
|
return self.browser.advanced_search_job(metier=self.config['metier'].get(),
|
||||||
place=self.config['place'].get(),
|
place=self.config['place'].get(),
|
||||||
contrat=self.config['contrat'].get())
|
contrat=self.config['contrat'].get(),
|
||||||
|
salary=self.config['salary'].get(),
|
||||||
|
qualification=self.config['qualification'].get(),
|
||||||
|
limit_date=self.config['limit_date'].get(),
|
||||||
|
domain=self.config['domain'].get())
|
||||||
|
|
||||||
def get_job_advert(self, _id, advert=None):
|
def get_job_advert(self, _id, advert=None):
|
||||||
with self.browser:
|
with self.browser:
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
from weboob.tools.browser.decorators import id2url
|
from weboob.tools.browser.decorators import id2url
|
||||||
from weboob.tools.browser import BaseBrowser
|
from weboob.tools.browser import BaseBrowser
|
||||||
import urllib
|
import urllib
|
||||||
|
import copy
|
||||||
|
|
||||||
from .pages import SearchPage, AdvertPage
|
from .pages import SearchPage, AdvertPage
|
||||||
from .job import PopolemploiJobAdvert
|
from .job import PopolemploiJobAdvert
|
||||||
|
|
@ -44,19 +45,98 @@ class PopolemploiBrowser(BaseBrowser):
|
||||||
assert self.is_on_page(SearchPage)
|
assert self.is_on_page(SearchPage)
|
||||||
return self.page.iter_job_adverts()
|
return self.page.iter_job_adverts()
|
||||||
|
|
||||||
def advanced_search_job(self, metier=None, place=None, contrat=None):
|
def advanced_search_job(self, metier=None, place=None, contrat=None, salary=None,
|
||||||
|
qualification=None, limit_date=None, domain=None):
|
||||||
|
|
||||||
|
self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/rechercheavanceeparparametres')
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
't:formdata': 'H4sIAAAAAAAAAJVSwUocQRAtJ1HBPSQonoLIEo1BpPeiErJ42AQ8LYlkMRdPPW3N2trT3emu2Vkv3vIb+YIg5Bs85JZ/yAfkmlMO6d5hR0UY1oEZpqtfVb33qr7/gfnyDew7FGfowmuyzKHvDGRulcwk4luuFLoROq94jeIjrgWid3CUOWaR5YIJk+eFZsQtenKXTJ7lMWaNRk2e9aW+GBRpLqk3QvHeaMIx4caRMwK9n9x4L40+/vrj+qDVXksgOYFFUeEIVk7656FrR3E97HxMz1FQtw8tVJiH8h94jgTLdyADclIPu2MHz2OQxSCr8uD2GVtL8GKi8HNQ2Oefpgp7lcJyB7YbvMHwZ2QNCH7sGTdk3PJwqq3YCz44VDJlKffIemkIckGHEtXpxgCpsJvHN63fqz//JTAXREXRzqgo6gtcQTKO3ycEz6p2NcdHk+s9ltyD6dxcn+5mf7/9SoJ3E1ZlG9YbOCiJhY/ABYKn8TADPsKXypfQbsD5MHhB08oL1XGmnKr6Fmw2IOsrF0w7nHXD35mCjK52vGmv5+7v7b0RL922Ll/DqwaOljtCzcN8/dSG1p3Y7NkTQ/4DH0zoXggEAAA=',
|
't:formdata': 'H4sIAAAAAAAAALVYz2/cRBj9sqilZFtafkkICSQgvSEn67YQkqZlu9lWgNNEXcolBzTr/XYzxfaYmfGue4ETR5A4I3HiiCoB9x7oASkHDvwH/AGckDiBxIxnbSfbJu16TKREyvM3b957M54Zzw9/wonJKrzN0d9Drn7ZcMhRLLfHJPIR10gQIB8jFwEpSgQN44AOKaLgsDPkToxO6Ds+C8MkciSJUUh+16F7ocZiFmEkhePR6NNe0g+pbI/R77BIYipxaYczH4XInghBWXT7yx/vbTRff7UBjV142jd1El7Y9e6QMVkOSDRa3u7fQV+ue9DEAENFf5OEKOH5AyU9yWk0Wk85nNOgo0HHtIPyJ41jCa9lJj9WJj1yKzfZK0xOrsDlo+IpcGKAzK8gkXQ4GVA24iyJVUirjI8cEhNVWORzSYXDMaD9gyHd0q1u6FZLPZRJ/M3K/bd+fvavXxqwoMzqMDgLtNnP4HNopPrvUxIWy85qEHuxgtjWfrq//1Pv3/sNlWmmarIGq/MLEShbKy0l4tKxIvpEoNPuK5D48jrFYGDiOn/7QfOPl3795/i4TppeLBW251X40Ex/cG9wcfj3d7/ZZ+YqRZqhacy5FuZUW810dvIeXJmfYMRJNBiwkNAIc0WnM3DTgPa0Rt1N8OxolqYrh8iWJDWenWMXspCmNBJO1zQy69jDI/rtF199/f327u9q7fLglB9QVfv+IJt85Vqm/13I5+KhcOLJVdioMGosETOZNzWWR25LahJ/F96Zn0XuqbxyUSey/yyIjJAb0K3YfmbMNd2Luax40oH2/LzTiGLCD1k9O8V3CP8oM10HubFfaTSjJETOTHk+RQy2rTFrUoslI2QDvc1y9bIkmTZQW/LpHPUUWk2dvBtjtgMQWVjWWMdg1qTG8hZ8aMXy6Cl5UGg8uQxrFd5fRezLT1Zy76dywI7OuO5CZ36KIUs0LiUKEhBazsTnyic986SmDoxYG7+t2fhadnQWivYw4RiStFCUAVsktaMziiqdGjGNkastzjcjeVIdREvIllIzLk424dr8JGMSaHOH1anEzpkH3VJjLfQWCSYRlThQZIXGxQza1JAtpdHVhqsVNh7dHqeHmlzamQztTtEaiC1OckK9TWoQ1NmajpVftYByjDkVWLywr0xL2tOSbllSd5f/hw/38T7curu0Xy7d2eXStaOzV3RhVtEFOzoLRfoGIkFRbik5YEdn8ZpHdIwkMUSFrDMG9QxaA7F9ZO5sZBWnVd66psjcR0bm1kBsBG7AeoWzpfrCHOr7hlzcMwViSWhEefBBhful4upQcqqWn5BJ4Qfq03mq8eWioGcKtlRBRxXU251xcB7ePIpSf2lhlJ1Ni2+GA9gTNjXdLMEbj1XOBYfrT3qBeo0lkkVHXT2U16YLh69FZ24Ki67/A14oWbX6FQAA',
|
||||||
'emploiRecherche': metier,
|
'radiogroup': u'MOTS_CLES',
|
||||||
'lieu': place,
|
'set101': metier,
|
||||||
'select': contrat,
|
'set201': u'',
|
||||||
'partenaires': 'on',
|
'grandDomaine': u'',
|
||||||
|
'sousDomaine': u'',
|
||||||
|
'theme': u'',
|
||||||
|
'domaineParTheme': u'',
|
||||||
|
'numeroOffre': u'',
|
||||||
|
'lieu': u'',
|
||||||
|
'lieuCode': u'',
|
||||||
|
'lieuCodePostal': u'',
|
||||||
|
'lieuType': u'',
|
||||||
|
'typeContrat': contrat,
|
||||||
|
'fourchetteSalaire': salary,
|
||||||
|
'select_1': qualification,
|
||||||
|
'heureMax': u'',
|
||||||
|
'experience': u'INDIFFERENT',
|
||||||
|
'dureeEmission': limit_date,
|
||||||
|
'secteurActiviteEntreprise1': domain,
|
||||||
|
'secteurActiviteEntreprise2': u'',
|
||||||
|
'select_2': u'',
|
||||||
|
'select_3': u'',
|
||||||
|
'langues1': u'',
|
||||||
|
'langues2': u'',
|
||||||
|
'textfield': u'',
|
||||||
}
|
}
|
||||||
self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/simplifiee.recherche',
|
|
||||||
|
if place.split('|')[1] == 'DEPARTEMENT':
|
||||||
|
self.choose_departement(place.split('|')[2], copy.deepcopy(data))
|
||||||
|
|
||||||
|
elif place.split('|')[1] == 'REGION':
|
||||||
|
self.choose_region(place.split('|')[2], copy.deepcopy(data))
|
||||||
|
|
||||||
|
else:
|
||||||
|
data['select'] = u'10'
|
||||||
|
data['radiogroup_0'] = 'FRANCE'
|
||||||
|
|
||||||
|
data['rechercher'] = u''
|
||||||
|
data['partenaires'] = u'on'
|
||||||
|
data['rechercher:hiddenelementSubmit'] = u'rechercher:hiddenelementSubmit'
|
||||||
|
|
||||||
|
self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee.recherche',
|
||||||
urllib.urlencode(data))
|
urllib.urlencode(data))
|
||||||
|
|
||||||
assert self.is_on_page(SearchPage)
|
assert self.is_on_page(SearchPage)
|
||||||
return self.page.iter_job_adverts()
|
return self.page.iter_job_adverts()
|
||||||
|
|
||||||
|
def choose_region(self, place, data):
|
||||||
|
data['select'] = u'10'
|
||||||
|
data['radiogroup_0'] = u'REGION'
|
||||||
|
data['choixRegion:hiddenelementSubmit'] = u'choixRegion:hiddenelementSubmit'
|
||||||
|
|
||||||
|
self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee.recherche',
|
||||||
|
urllib.urlencode(data))
|
||||||
|
|
||||||
|
data2 = {
|
||||||
|
't:formdata': 'H4sIAAAAAAAAAOWZwWoUQRCGK8GIZD2IoHjxEIigl944u6vRIJIYoodBxSVn6emt2e040z129ybjxZO+hi+gBnwDIQdvvoMP4EXEkwe7XTfbIEgc0BxqYBjo6ar6v545/PC/+QwLeyvADIoRGn/rPDdo23yXK4HYvjPS0kqTon2EQ6mVvVloXVkDTJsh4xX3JczxCq0zz3pMaIOFzPyzrLRC5SxL/f7l5EuVX7l7/vXteYDawJkd358VXA3Zg2wHhYPZVVf/QU/n/eUX9zpf30LQ8xSew9xeF5KjD/V7xJNM135w74+DM26RrWd+kQu3JbEYLPfRjatL2wetT+c+fJ+HuRRaQitndHGfl+jgbBpOpx1Op913Rqrh2kSig1PTuY3Vrv+t2odGC7S2P85Kaa1vd7A/6ObfXn2cndy//1zd+PdpODSUnWh4bqF2wcHidOHxSrNGoc9iM+mnj5n4KjnihBxxhxxxlxxxjxzxNXLE18kRr5IjvkGEuDVzIFRMV4RMxXVFyFRsV4RMxXdFyFSMV4RMxXlFyFSsV4RMxXtFyFTMV4RMz30l9NxXQs99JfTcV0LPfSXH4b42YePoZbu8kAM0hS/Qsh6gNZMX1sBWbliFrBQhJSjH6jA+YHJUxsnBhh47rX4GF+73GGP75bv9W62li5MABgssfVEIYILak9PA5cIvISkGjfXmocIfuzXN7zgbAAA=',
|
||||||
|
place: 'on',
|
||||||
|
'validerLeChoixDesRegions': u'',
|
||||||
|
'validerLeChoixDesRegions:hiddenelementSubmit': 'validerLeChoixDesRegions:hiddenelementSubmit',
|
||||||
|
}
|
||||||
|
|
||||||
|
self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee/choisirlesregions.choisirdeslieux',
|
||||||
|
urllib.urlencode(data2))
|
||||||
|
|
||||||
|
def choose_departement(self, place, data):
|
||||||
|
|
||||||
|
data['select'] = u'10'
|
||||||
|
data['radiogroup_0'] = u'DEPARTEMENT'
|
||||||
|
data['choixDepartement:hiddenelementSubmit'] = u'choixDepartement:hiddenelementSubmit'
|
||||||
|
|
||||||
|
self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee.recherche',
|
||||||
|
urllib.urlencode(data))
|
||||||
|
|
||||||
|
data2 = {
|
||||||
|
't:formdata': 'H4sIAAAAAAAAAO3dT2sTQRzG8alYkaYHEfTWg1BBL5u2afpHEamW6iFUofQsm82k3bq7s85M2njxpG/DN6AWfAdCD958D74ALyKePDjz1LYjglACVZinEArJ7swvn/bwpQ3M2y9ifK8tWlpm21K7h+r3tTTNdDetMimb97dVbnLdkWZV1qm2spSVNbcKpWqjRaL0VpLWqbsvsWktjdXP20mmtCzyrvte1qry1ycdd/303Ne6f/PB1Td3zwkx1OLSjtskKdJqK3nU3ZGZFSdfw/qshmp9uPHyYevbO+GHeiZeiLG9ZbF4yp3dhdnTrhq63dt/3b2bGpmsdN2TaWbXcln0pjekHdTXNw8an698/HFOjHVEI1OV1apYT0tpxeWOd2p6p+aG1Xm1dftwTisuHu072sgrpx35sVaZNGZj0C1zY3JVHez35vvfX386MTyjn958+Cs1ys7+3vOjMPoFxq2YOHriycwIq/nFJkZ4J5P/jcIsFZzCHBWcQosKTmGeCk6hTQWnsEAFp7BIBaewRAWnsByxQuOkmmKOx4Ah5noMGGLOx4Ah5n4MGGIOyIAh5oIMGGJOyIAh5oYMGGKOyICBFYm/OrEiwcCKBAMrEgysSDCwIsHAigQDKxIMrEgwsCLBwIrEf+1YkWBgRYKBFQkGViQYWJFgYEWCgRUJBlYkGFiRYGBF4lNPrEgwsCLBwIoEAysSDKxIMLAiwcCKBAMrEgysSDCwIj1DmxUJBlYkGFiRYGBFgoEVCQZWJBhYkWBgRYKBFQkGVqRnWGBFgoEVCQZWJBhYkWBgRYKBFQkGViQYWJFgYEWCgRXpGRZZkWBgRYKBFQkGViQYWJFgYEWCgRUJBlYkGFiRYGBFeoYlViQYWJFgYEWCgRUJBlYkGFiRYGBFgoEVCQZWJBhYkZ5hmRUJBlYkGFiRYGBFgoEVCQZWJBhYkWBgRYKBFQmGmCty8phhdibmjAwdYu7I0CHmkAwdYi7J0CHmlAwdYm7J0CHmmAwd/m1NrovOKe/dTYu8J3Xh7lL5sCdNL3jVaLHW10ktkzLzB+6Vg+r4JL4k3y7DQ/juqYFVFQ4CtH8eC7j56v3+nca1qcNTDWWB9f2phn7uC0enGE79mqYj/bTD1d9n/QkhTJ63oXIAAA==',
|
||||||
|
place: 'on',
|
||||||
|
'validerLeChoixDesDepartements': u'',
|
||||||
|
'validerLeChoixDesDepartements:hiddenelementSubmit': 'validerLeChoixDesDepartements:hiddenelementSubmit',
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee/choisirlesdepartements.choisirdeslieux',
|
||||||
|
urllib.urlencode(data2))
|
||||||
|
|
||||||
@id2url(PopolemploiJobAdvert.id2url)
|
@id2url(PopolemploiJobAdvert.id2url)
|
||||||
def get_job_advert(self, url, advert):
|
def get_job_advert(self, url, advert):
|
||||||
self.location(url)
|
self.location(url)
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,6 @@ class AdvertPage(BasePage):
|
||||||
_id = self.parser.select(content, 'ul/li/ul/li/div[@class="value"]/span', 1, method='xpath').text
|
_id = self.parser.select(content, 'ul/li/ul/li/div[@class="value"]/span', 1, method='xpath').text
|
||||||
advert = PopolemploiJobAdvert(_id)
|
advert = PopolemploiJobAdvert(_id)
|
||||||
|
|
||||||
print url
|
|
||||||
advert.title = u'%s' % self.parser.select(content, 'h4', 1, method='xpath').text.strip()
|
advert.title = u'%s' % self.parser.select(content, 'h4', 1, method='xpath').text.strip()
|
||||||
advert.job_name = u'%s' % self.parser.select(content, 'h4', 1, method='xpath').text.strip()
|
advert.job_name = u'%s' % self.parser.select(content, 'h4', 1, method='xpath').text.strip()
|
||||||
advert.description = u'%s' % self.parser.select(content, 'p[@itemprop="description"]', 1, method='xpath').text
|
advert.description = u'%s' % self.parser.select(content, 'p[@itemprop="description"]', 1, method='xpath').text
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue