本文整理汇总了Python中weboob.tools.compat.urljoin函数的典型用法代码示例。如果您正苦于以下问题:Python urljoin函数的具体用法?Python urljoin怎么用?Python urljoin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了urljoin函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: post
def post(self, contents, max_age):
form = self.get_form(xpath='//form[@class="well"]')
password, d = encrypt(b64encode(contents.encode('utf-8')))
form['content'] = json.dumps(d)
form['expiration'] = self.AGES[max_age]
j = form.submit().json()
assert j['status'] == 'ok'
return urljoin(urljoin(self.url, form.url), '%s#%s' % (j['paste'], password))
示例2: get_accounts_list
def get_accounts_list(self):
for table in self.doc.xpath('//div[@class="comptestabl"]/table'):
try:
account_type = self.ACCOUNT_TYPES[table.get('summary').lower()]
if not account_type:
account_type = self.ACCOUNT_TYPES[table.xpath('./caption/text()')[0].strip().lower()]
except (IndexError,KeyError):
account_type = Account.TYPE_UNKNOWN
for tr in table.xpath('./tbody/tr'):
cols = tr.findall('td')
link = cols[0].find('a')
if link is None:
continue
a = Account()
a.type = account_type
a.id = unicode(re.search('([A-Z\d]{4}[A-Z\d\*]{3}[A-Z\d]{4})', link.attrib['title']).group(1))
a.label = unicode(link.attrib['title'].replace('%s ' % a.id, ''))
tmp_balance = CleanText(None).filter(cols[1])
a.currency = a.get_currency(tmp_balance)
if not a.currency:
a.currency = u'EUR'
a.balance = Decimal(Transaction.clean_amount(tmp_balance))
a._has_cards = False
a.url = urljoin(self.url, link.attrib['href'])
yield a
示例3: iter_advisor
def iter_advisor(self):
if not self.advisor.is_here():
self.location(self.advisor_url.format(self.sag))
# it looks like we have an advisor only on cmds
if "ca-cmds" in self.first_domain:
perimetre, agence = self.page.get_codeperimetre().split('-')
publickey = self.location(urljoin('https://' + self.first_domain, '/Vitrine/jsp/CMDS/b.js')).page.get_publickey()
self.location(urljoin('https://' + self.first_domain.replace("www.ca", "www.credit-agricole"),
"vitrine/tracking/t/%s-%s.html" % (hashlib.sha1(perimetre + publickey).hexdigest(),
agence)))
yield self.page.get_advisor()
# for other we take numbers
else:
for adv in self.page.iter_numbers():
yield adv
示例4: absurl
def absurl(self, uri, base=None):
# FIXME this is copy-pasta from DomainBrowser
if not base:
base = self.url
if base is None or base is True:
base = self.BASEURL
return urljoin(base, uri)
示例5: obj_photos
def obj_photos(self):
photos = []
for img in XPath('//div[has-class("carousel-content")]//img/@src')(self):
url = u'%s' % img.replace('75x75', '800x600')
url = urljoin(self.page.url, url) # Ensure URL is absolute
photos.append(HousingPhoto(url))
return photos
示例6: url2page
def url2page(self, page):
baseurl = self.PROTOCOL + '://' + self.DOMAIN + self.BASEPATH
m = re.match('^' + urljoin(baseurl, 'wiki/(.+)$'), page)
if m:
return m.group(1)
else:
return page
示例7: obj_url
def obj_url(self):
try:
return urljoin(
self.page.browser.BASEURL,
Link('./td[8]/a[1]')(self)
)
except XPathNotFound:
return NotAvailable
示例8: obj_url
def obj_url(self):
url = Link(u'./a', default=NotAvailable)(self)
if not url:
url = Regexp(Attr(u'.//span', 'onclick', default=''), r'\'(https.*)\'', default=NotAvailable)(self)
if url:
if 'CreditRenouvelable' in url:
url = Link(u'.//a[contains(text(), "espace de gestion crédit renouvelable")]')(self.el)
return urljoin(self.page.url, url)
return url
示例9: next_page
def next_page(self):
pager = self.page.doc.xpath('//div[@class="pager"]')
if pager: # more than one page if only enough transactions
assert len(pager) == 1
next_links = pager[0].xpath('./span/following-sibling::a[@class="page"]')
if next_links:
url_next_page = Link('.')(next_links[0])
url_next_page = urljoin(self.page.url, url_next_page)
return self.page.browser.build_request(url_next_page)
示例10: download_document_pdf
def download_document_pdf(self, document):
if not isinstance(document, Document):
document = self.get_document(document)
if document.url is NotAvailable:
return
if document.format == 'pdf':
return self.browser.open(document.url).content
url = urljoin(self.browser.BASEURL, document.url)
return html_to_pdf(self.browser, url=url)
示例11: iter_accounts
def iter_accounts(self):
self.accounts.stay_or_go()
# sometimes when the user has messages, accounts's page will redirect
# to the message page and the user will have to click "ok" to access his accounts
# this will happen as long as the messages aren't deleted.
# In this case, accounts may be reached through a different link (in the "ok" button)
acc_link = self.page.get_acc_link()
if acc_link:
self.location(urljoin(self.BASEURL, acc_link))
return self.page.iter_accounts()
示例12: iter_documents
def iter_documents(self, subid):
for d in self.doc['data']['items']:
doc = Document()
doc.id = '%s_%s' % (subid, d['id'])
doc._docid = d['id']
doc.label = d['import']['name']
doc.date = parse_date(d['import']['endDate'])
doc.url = urljoin(self.url, '/pagga/download/%s' % doc._docid)
doc.type = DocumentTypes.BILL
doc.format = 'pdf'
yield doc
示例13: post
def post(self, paste, max_age=0):
bin = b64decode(paste.contents)
name = paste.title or 'file' # filename is mandatory
filefield = {'file': (name, BytesIO(bin))}
params = {'format': 'json'}
if max_age:
params['delete-day'] = int(math.ceil(max_age / 86400.))
self.location('/', data=params, files=filefield)
assert self.upload_page.is_here()
info = self.page.fetch_info()
paste.id = urljoin(self.base_url, info['short'])
示例14: handle_refresh
def handle_refresh(self):
if self.REFRESH_MAX is None:
return
for refresh in self.doc.xpath('//head/meta[lower-case(@http-equiv)="refresh"]'):
m = self.browser.REFRESH_RE.match(refresh.get('content', ''))
if not m:
continue
url = urljoin(self.url, m.groupdict().get('url', None))
sleep = float(m.groupdict()['sleep'])
if sleep <= self.REFRESH_MAX:
self.logger.info('Redirecting to %s', url)
self.browser.location(url)
break
else:
self.logger.debug('Do not refresh to %s because %s > REFRESH_MAX(%s)' % (url, sleep, self.REFRESH_MAX))
示例15: iter_documents
def iter_documents(self, sub):
elts = self.doc.xpath('//li[@class="rowdate"]')
for elt in elts:
try:
elt.xpath('.//a[contains(@id,"lienPDFReleve")]')[0]
except IndexError:
continue
date_str = elt.xpath('.//span[contains(@id,"moisEnCours")]')[0].text
month_str = date_str.split()[0]
date = datetime.strptime(re.sub(month_str, str(FRENCH_MONTHS.index(month_str) + 1), date_str), "%m %Y").date()
bil = Bill()
bil.id = sub._id + "." + date.strftime("%Y%m")
bil.date = date
bil.format = u'pdf'
bil.type = u'bill'
bil.label = u'' + date.strftime("%Y%m%d")
bil.url = urljoin(self.url, '/PortailAS/PDFServletReleveMensuel.dopdf?PDF.moisRecherche=%s' % date.strftime("%m%Y"))
yield bil