Source code for armatis.parsers.lotte
# -*- coding: utf-8 -*-
from armatis.models import Parcel, Track
from armatis.parser import Parser
[docs]class LotteParser(Parser):
def __init__(self, invoice_number, config):
super(LotteParser, self).__init__(invoice_number, config)
self.requests = [
{
'url': 'https://www.lotteglogis.com/home/personal/inquiry/track',
'method': 'POST',
'body': ('InvNo=%s&action=processInvoiceSubmit' % self.invoice_number).encode('utf-8'),
'header': {'Content-Type': 'application/x-www-form-urlencoded'}
},
{
'url': 'https://www.lotteglogis.com/home/personal/inquiry/track',
'method': 'POST',
'body': 'action=processInvoiceLinkSubmit'.encode('utf-8'),
'header': {'Content-Type': 'application/x-www-form-urlencoded'}
}
]
[docs] def parse(self, parser):
tr = parser.find('tr', {'class': 'bot'})
tds = tr.find_all('td')
address = tds[2].get_text(strip=True)
parcel = Parcel()
parcel.address = address
self.parcel = parcel
tables = parser.find_all('table', {'class': 'table_02'})
trs = tables[1].find_all('tr')
for tr in trs:
tds = tr.find_all('td')
if len(tds) > 0:
time = '%s %s' % (getattr(tds[0], 'string', ''), getattr(tds[1], 'string', ''))
location = getattr(tds[2].a, 'string', '') or getattr(tds[2], 'string', '')
status = getattr(tds[3].p, 'string', '')
track = Track()
track.time = time
track.location = location
track.status = status
self.add_track(track)