本文整理汇总了Python中weboob.capabilities.bank.Account._url方法的典型用法代码示例。如果您正苦于以下问题:Python Account._url方法的具体用法?Python Account._url怎么用?Python Account._url使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weboob.capabilities.bank.Account
的用法示例。
在下文中一共展示了Account._url方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _get_account
# 需要导入模块: from weboob.capabilities.bank import Account [as 别名]
# 或者: from weboob.capabilities.bank.Account import _url [as 别名]
def _get_account(self, line):
def get_field(field):
return unicode(line.xpath(self._FIELD_XPATH % field)[0]).strip()
account = Account()
account._url = unicode(line.xpath(self._URL_XPATH)[0])
account.id = account._url.replace("tbord.do?id=", "")
account.balance = Decimal(FrenchTransaction.clean_amount(
get_field('accountTotal')))
account.label = get_field('accountLabel2')
account.currency = account.get_currency(get_field('accountDev'))
return account
示例2: get_list
# 需要导入模块: from weboob.capabilities.bank import Account [as 别名]
# 或者: from weboob.capabilities.bank.Account import _url [as 别名]
def get_list(self):
for table in self.has_accounts():
tds = table.xpath('./tbody/tr')[0].findall('td')
if len(tds) < 3:
if tds[0].text_content() == u'Pr\xeat Personnel':
account = Account()
args = self.js2args(table.xpath('.//a')[0].attrib['onclick'])
account._args = args
account.label = CleanText().filter(tds[0].xpath('./ancestor::table[has-class("tableaux-pret-personnel")]/caption'))
account.id = account.label.split()[-1] + args['paramNumContrat']
loan_details = self.browser.open("/webapp/axabanque/jsp/panorama.faces",data=args)
# Need to go back on home page after open
self.browser.bank_accounts.open()
account.balance = -CleanDecimal().filter(loan_details.page.doc.xpath('//*[@id="table-detail"]/tbody/tr/td[7]/text()'))
account.currency = Currency().filter(loan_details.page.doc.xpath('//*[@id="table-detail"]/tbody/tr/td[7]/text()'))
account.type = Account.TYPE_LOAN
account._acctype = "bank"
account._hasinv = False
account._is_debit_card = False
yield account
continue
boxes = table.xpath('./tbody//tr[not(.//strong[contains(text(), "Total")])]')
foot = table.xpath('./tfoot//tr')
for box in boxes:
account = Account()
account._url = None
if len(box.xpath('.//a')) != 0 and 'onclick' in box.xpath('.//a')[0].attrib:
args = self.js2args(box.xpath('.//a')[0].attrib['onclick'])
account.label = u'{0} {1}'.format(unicode(table.xpath('./caption')[0].text.strip()), unicode(box.xpath('.//a')[0].text.strip()))
elif len(foot[0].xpath('.//a')) != 0 and 'onclick' in foot[0].xpath('.//a')[0].attrib:
args = self.js2args(foot[0].xpath('.//a')[0].attrib['onclick'])
account.label = unicode(table.xpath('./caption')[0].text.strip())
else:
continue
self.logger.debug('Args: %r' % args)
if 'paramNumCompte' not in args:
#The displaying of life insurances is very different from the other
if args.get('idPanorama:_idcl').split(":")[1] == 'tableaux-direct-solution-vie':
account_details = self.browser.open("#", data=args)
scripts = account_details.page.doc.xpath('//script[@type="text/javascript"]/text()')
script = filter(lambda x: "src" in x, scripts)[0]
iframe_url = re.search("src:(.*),", script).group()[6:-2]
account_details_iframe = self.browser.open(iframe_url, data=args)
account.id = CleanText('//span[contains(@id,"NumeroContrat")]/text()')(account_details_iframe.page.doc)
account._url = iframe_url
account.type = account.TYPE_LIFE_INSURANCE
account.balance = MyDecimal('//span[contains(@id,"MontantEpargne")]/text()')(account_details_iframe.page.doc)
account._acctype = "bank"
account._is_debit_card = False
else:
try:
label = unicode(table.xpath('./caption')[0].text.strip())
except Exception:
label = 'Unable to determine'
self.logger.warning('Unable to get account ID for %r' % label)
continue
if account.type != account.TYPE_LIFE_INSURANCE:
# get accounts type
account_type_str = ''
for l in table.attrib['class'].split(' '):
if 'tableaux-comptes-' in l:
account_type_str = l[len('tableaux-comptes-'):].lower()
break
account.type = Account.TYPE_UNKNOWN
for pattern, type in self.ACCOUNT_TYPES.items():
if pattern in account_type_str or pattern in account.label.lower():
account.type = type
break
# get accounts id
try:
account.id = args['paramNumCompte'] + args['paramNumContrat']
if 'Visa' in account.label:
card_id = re.search('(\d+)', box.xpath('./td[2]')[0].text.strip())
if card_id:
account.id += card_id.group(1)
if u'Valorisation' in account.label or u'Liquidités' in account.label:
account.id += args[next(k for k in args.keys() if "_idcl" in k)].split('Jsp')[-1]
except KeyError:
account.id = args['paramNumCompte']
# get accounts balance
try:
balance_value = CleanText('.//td[has-class("montant")]')(box)
# skip debit card
# some cards don't have information in balance tab, skip them
if balance_value == u'Débit immédiat' or balance_value == '':
account._is_debit_card = True
else:
account._is_debit_card = False
#.........这里部分代码省略.........