[popolemploi] fix place selection

This commit is contained in:
Bezleputh 2014-04-06 01:01:45 +02:00 committed by Romain Bignon
commit 76a7a8ab04
3 changed files with 142 additions and 240 deletions

View file

@ -39,142 +39,142 @@ class PopolemploiBackend(BaseBackend, ICapJob):
BROWSER = PopolemploiBrowser
places_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
'100|FRANCE|FRANCE': u'France entière',
'102|REGION|checkbox': u'Alsace',
'103|DEPARTEMENT|checkbox_66': u'-- Rhin (Bas) (67)',
'104|DEPARTEMENT|checkbox_67': u'-- Rhin (Haut) (68)',
'105|REGION|checkbox_0': u'Aquitaine',
'106|DEPARTEMENT|checkbox_21': u'-- Dordogne (24)',
'107|DEPARTEMENT|checkbox_32': u'-- Gironde (33)',
'108|DEPARTEMENT|checkbox_39': u'-- Landes (40)',
'109|DEPARTEMENT|checkbox_46': u'-- Lot et Garonne (47)',
'110|DEPARTEMENT|checkbox_63': u'-- Pyrénées Atlantiques (64)',
'111|REGION|checkbox_1': u'Auvergne',
'112|DEPARTEMENT|checkbox_1': u'-- Allier (03)',
'113|DEPARTEMENT|checkbox_13': u'-- Cantal (15)',
'114|DEPARTEMENT|checkbox_42': u'-- Loire (Haute) (43)',
'115|DEPARTEMENT|checkbox_62': u'-- Puy de Dôme (63)',
'116|REGION|checkbox_2': u'Bourgogne',
'117|DEPARTEMENT|checkbox_18': u'-- Côte d\'Or (21)',
'118|DEPARTEMENT|checkbox_57': u'-- Nièvre (58)',
'119|DEPARTEMENT|checkbox_70': u'-- Saône et Loire (71)',
'120|DEPARTEMENT|checkbox_88': u'-- Yonne (89)',
'121|REGION|checkbox_3': u'Bretagne',
'122|DEPARTEMENT|checkbox_19': u'-- Côtes d\'Armor (22)',
'123|DEPARTEMENT|checkbox_26': u'-- Finistère (29)',
'124|DEPARTEMENT|checkbox_34': u'-- Ille et Vilaine (35)',
'125|DEPARTEMENT|checkbox_54': u'-- Morbihan (56)',
'126|REGION|checkbox_4': u'Centre',
'127|DEPARTEMENT|checkbox_16': u'-- Cher (18)',
'128|DEPARTEMENT|checkbox_25': u'-- Eure et Loir (28)',
'129|DEPARTEMENT|checkbox_35': u'-- Indre (36)',
'130|DEPARTEMENT|checkbox_36': u'-- Indre et Loire (37)',
'131|DEPARTEMENT|checkbox_40': u'-- Loir et Cher (41)',
'132|DEPARTEMENT|checkbox_44': u'-- Loiret (45)',
'133|REGION|checkbox_5': u'Champagne Ardenne',
'134|DEPARTEMENT|checkbox_6': u'-- Ardennes (08)',
'135|DEPARTEMENT|checkbox_8': u'-- Aube (10)',
'136|DEPARTEMENT|checkbox_50': u'-- Marne (51)',
'137|DEPARTEMENT|checkbox_51': u'-- Marne (Haute) (52)',
'138|REGION|checkbox_6': u'Corse',
'139|DEPARTEMENT|checkbox_26': u'-- Corse du Sud (2A)',
'140|DEPARTEMENT|checkbox_27': u'-- Haute Corse (2B)',
'141|REGION|checkbox_7': u'Franche Comté',
'142|DEPARTEMENT|checkbox_89': u'-- Belfort (Territoire de) (90)',
'143|DEPARTEMENT|checkbox_22': u'-- Doubs (25)',
'144|DEPARTEMENT|checkbox_38': u'-- Jura (39)',
'145|DEPARTEMENT|checkbox_69': u'-- Saône (Haute) (70)',
'146|REGION|checkbox_8': u'Ile de France',
'147|DEPARTEMENT|checkbox_90': u'-- Essonne (91)',
'148|DEPARTEMENT|checkbox_91': u'-- Hauts de Seine (92)',
'149|DEPARTEMENT|checkbox_74': u'-- Paris (Dept.) (75)',
'150|DEPARTEMENT|checkbox_92': u'-- Seine Saint Denis (93)',
'151|DEPARTEMENT|checkbox_76': u'-- Seine et Marne (77)',
'152|DEPARTEMENT|checkbox_94': u'-- Val d\'Oise (95)',
'153|DEPARTEMENT|checkbox_93': u'-- Val de Marne (94)',
'154|DEPARTEMENT|checkbox_77': u'-- Yvelines (78)',
'155|REGION|checkbox_9': u'Languedoc Roussillon',
'156|DEPARTEMENT|checkbox_9': u'-- Aude (11)',
'157|DEPARTEMENT|checkbox_39': u'-- Gard (30)',
'158|DEPARTEMENT|checkbox_33': u'-- Hérault (34)',
'159|DEPARTEMENT|checkbox_47': u'-- Lozère (48)',
'161|DEPARTEMENT|checkbox_65': u'-- Pyrénées Orientales (66)',
'162|REGION|checkbox_10': u'Limousin',
'163|DEPARTEMENT|checkbox_17': u'-- Corrèze (19)',
'164|DEPARTEMENT|checkbox_20': u'-- Creuse (23)',
'165|DEPARTEMENT|checkbox_86': u'-- Vienne (Haute) (87)',
'166|REGION|checkbox_11': u'Lorraine',
'167|DEPARTEMENT|checkbox_53': u'-- Meurthe et Moselle (54)',
'168|DEPARTEMENT|checkbox_54': u'-- Meuse (55)',
'169|DEPARTEMENT|checkbox_56': u'-- Moselle (57)',
'170|DEPARTEMENT|checkbox_87': u'-- Vosges (88)',
'171|REGION|checkbox_12': u'Midi Pyrénées',
'172|DEPARTEMENT|checkbox_7': u'-- Ariège (09)',
'173|DEPARTEMENT|checkbox_10': u'-- Aveyron (12)',
'174|DEPARTEMENT|checkbox_30': u'-- Garonne (Haute) (31)',
'175|DEPARTEMENT|checkbox_31': u'-- Gers (32)',
'176|DEPARTEMENT|checkbox_45': u'-- Lot (46)',
'177|DEPARTEMENT|checkbox_64': u'-- Pyrénées (Hautes) (65)',
'178|DEPARTEMENT|checkbox_80': u'-- Tarn (81)',
'179|DEPARTEMENT|checkbox_81': u'-- Tarn et Garonne (82)',
'180|REGION|checkbox_13': u'Nord Pas de Calais',
'181|DEPARTEMENT|checkbox_58': u'-- Nord (59)',
'182|DEPARTEMENT|checkbox_61': u'-- Pas de Calais (62)',
'183|REGION|checkbox_14': u'Normandie (Basse)',
'184|DEPARTEMENT|checkbox_12': u'-- Calvados (14)',
'185|DEPARTEMENT|checkbox_49': u'-- Manche (50)',
'186|DEPARTEMENT|checkbox_60': u'-- Orne (61)',
'187|REGION|checkbox_15': u'Normandie (Haute)',
'188|DEPARTEMENT|checkbox_24': u'-- Eure (27)',
'189|DEPARTEMENT|checkbox_75': u'-- Seine Maritime (76)',
'190|REGION|checkbox_16': u'Pays de la Loire',
'191|DEPARTEMENT|checkbox_43': u'-- Loire Atlantique (44)',
'192|DEPARTEMENT|checkbox_48': u'-- Maine et Loire (49)',
'193|DEPARTEMENT|checkbox_52': u'-- Mayenne (53)',
'194|DEPARTEMENT|checkbox_71': u'-- Sarthe (72)',
'195|DEPARTEMENT|checkbox_84': u'-- Vendée (85)',
'196|REGION|checkbox_17': u'Picardie',
'197|DEPARTEMENT|checkbox_0': u'-- Aisne (02)',
'198|DEPARTEMENT|checkbox_59': u'-- Oise (60)',
'199|DEPARTEMENT|checkbox_79': u'-- Somme (80)',
'200|REGION|checkbox_18': u'Poitou Charentes',
'201|DEPARTEMENT|checkbox_14': u'-- Charente (16)',
'202|DEPARTEMENT|checkbox_15': u'-- Charente Maritime (17)',
'203|DEPARTEMENT|checkbox_78': u'-- Sèvres (Deux) (79)',
'204|DEPARTEMENT|checkbox_85': u'-- Vienne (86)',
'205|REGION|checkbox_19': u'Provence Alpes Côte d\'Azur',
'206|DEPARTEMENT|checkbox_3': u'-- Alpes (Hautes) (05)',
'207|DEPARTEMENT|checkbox_4': u'-- Alpes Maritimes (06)',
'208|DEPARTEMENT|checkbox_2': u'-- Alpes de Haute Provence (04)',
'209|DEPARTEMENT|checkbox_13': u'-- Bouches du Rhône (13)',
'210|DEPARTEMENT|checkbox_82': u'-- Var (83)',
'211|DEPARTEMENT|checkbox_83': u'-- Vaucluse (84)',
'212|REGION|checkbox_20': u'Rhône Alpes',
'213|DEPARTEMENT|checkbox': u'-- Ain (01)',
'214|DEPARTEMENT|checkbox_5': u'-- Ardèche (07)',
'215|DEPARTEMENT|checkbox_23': u'-- Drôme (26)',
'216|DEPARTEMENT|checkbox_37': u'-- Isère (38)',
'217|DEPARTEMENT|checkbox_41': u'-- Loire (42)',
'218|DEPARTEMENT|checkbox_68': u'-- Rhône (69)',
'219|DEPARTEMENT|checkbox_72': u'-- Savoie (73)',
'220|DEPARTEMENT|checkbox_73': u'-- Savoie (Haute) (74)',
'221|REGION|checkbox_21': u'Région Antilles / Guyane',
'222|DEPARTEMENT|checkbox_95': u'-- Guadeloupe (971)',
'223|DEPARTEMENT|checkbox_97': u'-- Guyane (973)',
'224|DEPARTEMENT|checkbox_96': u'-- Martinique (972)',
'225|DEPARTEMENT|checkbox_101': u'-- Saint Barthélémy (977)',
'226|DEPARTEMENT|checkbox_102': u'-- Saint Martin (978)',
'227|REGION|checkbox_22': u'Région Atlantique Nord',
'228|DEPARTEMENT|checkbox_99': u'-- Saint Pierre et Miquelon (975)',
'229|REGION|checkbox_23': u'Région Pacifique',
'230|DEPARTEMENT|checkbox_107': u'-- Ile de Clipperton (989)',
'231|DEPARTEMENT|checkbox_106': u'-- Nouvelle Calédonie (988)',
'232|DEPARTEMENT|checkbox_105': u'-- Polynésie française (987)',
'233|DEPARTEMENT|checkbox_103': u'-- Terres australes/antarctiques (984)',
'234|DEPARTEMENT|checkbox_104': u'-- Wallis et Futuna (986)',
'235|REGION|checkbox_24': u'Région Réunion / Mayotte',
'236|DEPARTEMENT|checkbox_100': u'-- Mayotte (976)',
'237|DEPARTEMENT|checkbox_98': u'-- Réunion (974)',
'100|FRANCE|O1': u'France entière',
'102|REGION|42': u'Alsace',
'103|DEPARTEMENT|67': u'-- Rhin (Bas) (67)',
'104|DEPARTEMENT|68': u'-- Rhin (Haut) (68)',
'105|REGION|72': u'Aquitaine',
'106|DEPARTEMENT|24': u'-- Dordogne (24)',
'107|DEPARTEMENT|33': u'-- Gironde (33)',
'108|DEPARTEMENT|40': u'-- Landes (40)',
'109|DEPARTEMENT|47': u'-- Lot et Garonne (47)',
'110|DEPARTEMENT|64': u'-- Pyrénées Atlantiques (64)',
'111|REGION|83': u'Auvergne',
'112|DEPARTEMENT|03': u'-- Allier (03)',
'113|DEPARTEMENT|15': u'-- Cantal (15)',
'114|DEPARTEMENT|43': u'-- Loire (Haute) (43)',
'115|DEPARTEMENT|63': u'-- Puy de Dôme (63)',
'116|REGION|26': u'Bourgogne',
'117|DEPARTEMENT|21': u'-- Côte d\'Or (21)',
'118|DEPARTEMENT|58': u'-- Nièvre (58)',
'119|DEPARTEMENT|71': u'-- Saône et Loire (71)',
'120|DEPARTEMENT|89': u'-- Yonne (89)',
'121|REGION|53': u'Bretagne',
'122|DEPARTEMENT|22': u'-- Côtes d\'Armor (22)',
'123|DEPARTEMENT|29': u'-- Finistère (29)',
'124|DEPARTEMENT|35': u'-- Ille et Vilaine (35)',
'125|DEPARTEMENT|56': u'-- Morbihan (56)',
'126|REGION|24': u'Centre',
'127|DEPARTEMENT|18': u'-- Cher (18)',
'128|DEPARTEMENT|28': u'-- Eure et Loir (28)',
'129|DEPARTEMENT|36': u'-- Indre (36)',
'130|DEPARTEMENT|37': u'-- Indre et Loire (37)',
'131|DEPARTEMENT|41': u'-- Loir et Cher (41)',
'132|DEPARTEMENT|45': u'-- Loiret (45)',
'133|REGION|21': u'Champagne Ardenne',
'134|DEPARTEMENT|08': u'-- Ardennes (08)',
'135|DEPARTEMENT|10': u'-- Aube (10)',
'136|DEPARTEMENT|51': u'-- Marne (51)',
'137|DEPARTEMENT|52': u'-- Marne (Haute) (52)',
'138|REGION|94': u'Corse',
'139|DEPARTEMENT|2A': u'-- Corse du Sud (2A)',
'140|DEPARTEMENT|2B': u'-- Haute Corse (2B)',
'141|REGION|43': u'Franche Comté',
'142|DEPARTEMENT|90': u'-- Belfort (Territoire de) (90)',
'143|DEPARTEMENT|25': u'-- Doubs (25)',
'144|DEPARTEMENT|39': u'-- Jura (39)',
'145|DEPARTEMENT|70': u'-- Saône (Haute) (70)',
'146|REGION|11': u'Ile de France',
'147|DEPARTEMENT|91': u'-- Essonne (91)',
'148|DEPARTEMENT|92': u'-- Hauts de Seine (92)',
'149|DEPARTEMENT|75': u'-- Paris (Dept.) (75)',
'150|DEPARTEMENT|93': u'-- Seine Saint Denis (93)',
'151|DEPARTEMENT|77': u'-- Seine et Marne (77)',
'152|DEPARTEMENT|95': u'-- Val d\'Oise (95)',
'153|DEPARTEMENT|94': u'-- Val de Marne (94)',
'154|DEPARTEMENT|78': u'-- Yvelines (78)',
'155|REGION|91': u'Languedoc Roussillon',
'156|DEPARTEMENT|11': u'-- Aude (11)',
'157|DEPARTEMENT|30': u'-- Gard (30)',
'158|DEPARTEMENT|34': u'-- Hérault (34)',
'159|DEPARTEMENT|48': u'-- Lozère (48)',
'161|DEPARTEMENT|66': u'-- Pyrénées Orientales (66)',
'162|REGION|74': u'Limousin',
'163|DEPARTEMENT|19': u'-- Corrèze (19)',
'164|DEPARTEMENT|23': u'-- Creuse (23)',
'165|DEPARTEMENT|87': u'-- Vienne (Haute) (87)',
'166|REGION|41': u'Lorraine',
'167|DEPARTEMENT|54': u'-- Meurthe et Moselle (54)',
'168|DEPARTEMENT|55': u'-- Meuse (55)',
'169|DEPARTEMENT|57': u'-- Moselle (57)',
'170|DEPARTEMENT|88': u'-- Vosges (88)',
'171|REGION|73': u'Midi Pyrénées',
'172|DEPARTEMENT|09': u'-- Ariège (09)',
'173|DEPARTEMENT|12': u'-- Aveyron (12)',
'174|DEPARTEMENT|31': u'-- Garonne (Haute) (31)',
'175|DEPARTEMENT|32': u'-- Gers (32)',
'176|DEPARTEMENT|46': u'-- Lot (46)',
'177|DEPARTEMENT|65': u'-- Pyrénées (Hautes) (65)',
'178|DEPARTEMENT|81': u'-- Tarn (81)',
'179|DEPARTEMENT|82': u'-- Tarn et Garonne (82)',
'180|REGION|31': u'Nord Pas de Calais',
'181|DEPARTEMENT|59': u'-- Nord (59)',
'182|DEPARTEMENT|62': u'-- Pas de Calais (62)',
'183|REGION|25': u'Normandie (Basse)',
'184|DEPARTEMENT|14': u'-- Calvados (14)',
'185|DEPARTEMENT|50': u'-- Manche (50)',
'186|DEPARTEMENT|61': u'-- Orne (61)',
'187|REGION|23': u'Normandie (Haute)',
'188|DEPARTEMENT|27': u'-- Eure (27)',
'189|DEPARTEMENT|76': u'-- Seine Maritime (76)',
'190|REGION|52': u'Pays de la Loire',
'191|DEPARTEMENT|44': u'-- Loire Atlantique (44)',
'192|DEPARTEMENT|49': u'-- Maine et Loire (49)',
'193|DEPARTEMENT|53': u'-- Mayenne (53)',
'194|DEPARTEMENT|72': u'-- Sarthe (72)',
'195|DEPARTEMENT|85': u'-- Vendée (85)',
'196|REGION|22': u'Picardie',
'197|DEPARTEMENT|02': u'-- Aisne (02)',
'198|DEPARTEMENT|60': u'-- Oise (60)',
'199|DEPARTEMENT|80': u'-- Somme (80)',
'200|REGION|54': u'Poitou Charentes',
'201|DEPARTEMENT|16': u'-- Charente (16)',
'202|DEPARTEMENT|17': u'-- Charente Maritime (17)',
'203|DEPARTEMENT|79': u'-- Sèvres (Deux) (79)',
'204|DEPARTEMENT|86': u'-- Vienne (86)',
'205|REGION|93': u'Provence Alpes Côte d\'Azur',
'206|DEPARTEMENT|05': u'-- Alpes (Hautes) (05)',
'207|DEPARTEMENT|06': u'-- Alpes Maritimes (06)',
'208|DEPARTEMENT|04': u'-- Alpes de Haute Provence (04)',
'209|DEPARTEMENT|13': u'-- Bouches du Rhône (13)',
'210|DEPARTEMENT|83': u'-- Var (83)',
'211|DEPARTEMENT|84': u'-- Vaucluse (84)',
'212|REGION|82': u'Rhône Alpes',
'213|DEPARTEMENT|01': u'-- Ain (01)',
'214|DEPARTEMENT|07': u'-- Ardèche (07)',
'215|DEPARTEMENT|26': u'-- Drôme (26)',
'216|DEPARTEMENT|38': u'-- Isère (38)',
'217|DEPARTEMENT|42': u'-- Loire (42)',
'218|DEPARTEMENT|69': u'-- Rhône (69)',
'219|DEPARTEMENT|73': u'-- Savoie (73)',
'220|DEPARTEMENT|74': u'-- Savoie (Haute) (74)',
'221|REGION|03': u'Région Antilles / Guyane',
'222|DEPARTEMENT|971': u'-- Guadeloupe (971)',
'223|DEPARTEMENT|973': u'-- Guyane (973)',
'224|DEPARTEMENT|972': u'-- Martinique (972)',
'225|DEPARTEMENT|977': u'-- Saint Barthélémy (977)',
'226|DEPARTEMENT|978': u'-- Saint Martin (978)',
'227|REGION|98': u'Région Atlantique Nord',
'228|DEPARTEMENT|975': u'-- Saint Pierre et Miquelon (975)',
'229|REGION|95': u'Région Pacifique',
'230|DEPARTEMENT|989': u'-- Ile de Clipperton (989)',
'231|DEPARTEMENT|988': u'-- Nouvelle Calédonie (988)',
'232|DEPARTEMENT|987': u'-- Polynésie française (987)',
'233|DEPARTEMENT|984': u'-- Terres australes/antarctiques (984)',
'234|DEPARTEMENT|986': u'-- Wallis et Futuna (986)',
'235|REGION|97': u'Région Réunion / Mayotte',
'236|DEPARTEMENT|976': u'-- Mayotte (976)',
'237|DEPARTEMENT|974': u'-- Réunion (974)',
}.iteritems())])
type_contrat_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({
@ -323,7 +323,7 @@ class PopolemploiBackend(BaseBackend, ICapJob):
}.iteritems())])
CONFIG = BackendConfig(Value('metier', label='Job name', masked=False, default=''),
Value('place', label=u'Place', choices=places_choices, default='100|FRANCE|FRANCE'),
Value('place', label=u'Place', choices=places_choices, default='100|FRANCE|01'),
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=''),

View file

@ -19,11 +19,9 @@
from weboob.tools.browser.decorators import id2url
from weboob.tools.browser import BaseBrowser
import re
import urllib
import copy
from .pages import SearchPage, AdvertPage, ChangeLocationReturnPage, ChangeLocationPage
from .pages import SearchPage, AdvertPage
from .job import PopolemploiJobAdvert
@ -36,8 +34,6 @@ class PopolemploiBrowser(BaseBrowser):
ENCODING = None
PAGES = {
'http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee.recherche': ChangeLocationPage,
'http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee/(.*?)': ChangeLocationReturnPage,
'http://candidat.pole-emploi.fr/candidat/rechercheoffres/resultats(.*?)': SearchPage,
'http://candidat.pole-emploi.fr/candidat/rechercheoffres/detail/(?P<id>.+)': AdvertPage,
}
@ -51,48 +47,11 @@ class PopolemploiBrowser(BaseBrowser):
def advanced_search_job(self, metier='', place=None, contrat=None, salary=None,
qualification=None, limit_date=None, domain=None):
data = {
'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',
'radiogroup': u'MOTS_CLES',
'set101': metier,
'set201': u'',
'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'',
}
if place.split('|')[1] == 'DEPARTEMENT':
place_type, place_number = self.choose_departement(place.split('|')[2], copy.deepcopy(data))
elif place.split('|')[1] == 'REGION':
place_type, place_number = self.choose_region(place.split('|')[2], copy.deepcopy(data))
else:
place_type = 'FRANCE'
place_number = '01'
splitted_place = place.split('|')
params = 'A_%s_%s_%s__%s_P_%s_%s_%s_______INDIFFERENT______________%s' % (urllib.quote(metier).replace('%', '$00'),
place_type,
place_number,
splitted_place[1],
splitted_place[2],
contrat,
domain,
salary,
@ -105,55 +64,6 @@ class PopolemploiBrowser(BaseBrowser):
assert self.is_on_page(SearchPage)
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))
return self.decode_place(self.page.url)
def decode_place(self, url):
re_url = re.compile('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee/A_(.*?)_(.*?)_(.*?)__(.*?)_P_(.*?)_(.*?)_(.*?)_______INDIFFERENT______________(.*?)', re.DOTALL)
if re_url.match(url):
return re_url.search(url).group(2), re_url.search(url).group(3)
else:
return 'FRANCE', '01'
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))
return self.decode_place(self.page.url)
@id2url(PopolemploiJobAdvert.id2url)
def get_job_advert(self, url, advert):
self.location(url)

View file

@ -25,7 +25,7 @@ import re
from .job import PopolemploiJobAdvert
__all__ = ['SearchPage', 'AdvertPage', 'ChangeLocationPage', 'ChangeLocationReturnPage']
__all__ = ['SearchPage', 'AdvertPage']
class SearchPage(BasePage):
@ -100,11 +100,3 @@ class AdvertPage(BasePage):
advert.pay = pay.strip()
return advert
class ChangeLocationReturnPage(BasePage):
pass
class ChangeLocationPage(BasePage):
pass