def get_profile(self): profile = Person() # the name is only available in a welcome message. Sometimes, the message will look like that : # "Bienvenue M <first> <lastname> - <company name>" and sometimes just "Bienvenue M <firstname> <lastname>" # Or even "Bienvenue <company name>" # We need to detect wether the company name is there, and where it begins. # relying on the dash only is dangerous as people may have dashes in their name and so may companies. # but we can detect company name from a dash between space # because we consider that impossible to be called jean - charles but only jean-charles welcome_msg = CleanText('//div[@id="BlcBienvenue"]/div[@class="btit"]')(self.doc) full_name_re = re.search(r'Bienvenue\s(((?! - ).)*)( - )?(.*)', welcome_msg) name_re = re.search(r'M(?:me|lle)? (.*)', full_name_re.group(1)) profile.email = CleanText('//span[@id="fld8"]')(self.doc) if name_re: profile.name = name_re.group(1) if full_name_re.group(4): profile.company_name = full_name_re.group(4) else: profile.company_name = full_name_re.group(1) profile.email = CleanText('//span[contains(text(), "@")]')(self.doc) return profile
def get_profile(self): profile = Person() profile.name = Format('%s %s', CleanText('//div[@id="persoIdentiteDetail"]//dd[3]'), CleanText('//div[@id="persoIdentiteDetail"]//dd[2]'))(self.doc) profile.address = CleanText('//div[@id="persoAdresseDetail"]//dd')(self.doc) profile.email = CleanText('//div[@id="persoEmailDetail"]//td[2]')(self.doc) profile.job = CleanText('//div[@id="persoIdentiteDetail"]//dd[4]')(self.doc) return profile
def get_profile(self): form = self.get_form(xpath='//div[@class="popin-card"]') profile = Person() profile.name = '%s %s' % (form['party.first_name'], form['party.preferred_last_name']) profile.address = '%s %s %s' % (form['mailing_address.street_line'], form['mailing_address.zip_postal_code'], form['mailing_address.locality']) profile.email = CleanText('//label[@class="email-editable"]')(self.doc) profile.phone = CleanText('//div[@class="info-title colorized phone-disabled"]//label', children=False)(self.doc) return profile
def get_profile(self): profile = Person() profile.name = Regexp(CleanText('//div[@id="dcr-conteneur"]//div[contains(text(), "PROFIL DE")]'), r'PROFIL DE (.*)')(self.doc) profile.address = CleanText('//div[@id="dcr-conteneur"]//div[contains(text(), "ADRESSE")]/following::table//tr[3]/td[2]')(self.doc) profile.address += ' ' + CleanText('//div[@id="dcr-conteneur"]//div[contains(text(), "ADRESSE")]/following::table//tr[5]/td[2]')(self.doc) profile.address += ' ' + CleanText('//div[@id="dcr-conteneur"]//div[contains(text(), "ADRESSE")]/following::table//tr[6]/td[2]')(self.doc) profile.country = CleanText('//div[@id="dcr-conteneur"]//div[contains(text(), "ADRESSE")]/following::table//tr[7]/td[2]')(self.doc) profile.email = CleanText('//span[@id="currentEmail"]')(self.doc) return profile
def get_profile(self): d = {el[0]: el[1] for el in self.doc} profile = Person() profile.name = '%s %s' % (d['Nom'], d['Prénom']) profile.birth_date = parse_french_date(d['Date de naissance']).date() profile.address = '%s %s %s' % (d['Adresse de correspondance'], d['Code postal résidence fiscale'], d['Ville adresse de correspondance']) profile.country = d['Pays adresse de correspondance'] profile.email = d['Adresse e-mail'] profile.phone = d.get('Téléphone portable') profile.job_activity_area = d.get('Secteur d\'activité') profile.job = d.get('Situation professionnelle') profile.company_name = d.get('Employeur') profile.family_situation = d.get('Situation familiale') return profile
def get_profile(self): self.get_universes() profile = Person() content = self.location('/transactionnel/services/rest/User/user').json()['content'] profile.name = content['prenom'] + ' ' + content['nom'] profile.address = content['adresse'] + ' ' + content['codePostal'] + ' ' + content['ville'] profile.country = content['pays'] profile.birth_date = parse_french_date(content['dateNaissance']).date() content = self.location('/transactionnel/services/applications/gestionEmail/getAdressesMails').json()['content'] profile.email = content['emailPart'] return profile
def get_profile(self, name): error_xpath = '//div[contains(text(), "Nous vous invitons à prendre contact avec votre conseiller")]' if self.doc.xpath(error_xpath): raise ProfileMissing(CleanText(error_xpath, children=False)(self.doc)) profile = Person() profile.name = name try: profile.email = Attr('//input[@id="textMail"]', 'value')(self.doc) except AttributeNotFound: pass nb = Attr('//input[@id="nbEnfant"]', 'value', default=NotAvailable)(self.doc) if nb: profile.children = Decimal(nb) return profile
def get_profile(self): form = self.get_form(xpath='//div[@class="popin-card"]') profile = Person() profile.name = '%s %s' % (form['party.first_name'], form['party.preferred_last_name']) profile.address = '%s %s %s' % ( form['mailing_address.street_line'], form['mailing_address.zip_postal_code'], form['mailing_address.locality']) profile.email = CleanText('//label[@class="email-editable"]')(self.doc) profile.phone = CleanText( '//div[@class="info-title colorized phone-disabled"]//label', children=False)(self.doc) return profile