Source code for armatis.parsers.kg_logis
# -*- coding: utf-8 -*-
from armatis.models import Track, Parcel
from armatis.parser import Parser, ParserRequest
[docs]class KGLogisParser(Parser):
def __init__(self, invoice_number, config):
super(KGLogisParser, self).__init__(invoice_number, config)
parser_request = ParserRequest(url='https://www.kglogis.co.kr/delivery/delivery_result.jsp',
method='POST',
body='item_no=%s' % self.invoice_number,
header={'Content-Type': 'application/x-www-form-urlencoded'})
self.add_request(parser_request)
[docs] def parse(self, parser):
basic_table = parser.find('table', {'class': 'i_table_01'})
trs = basic_table.find_all('tr')
sender = trs[0].find_all('td')[1].get_text()
note = trs[1].find_all('td')[0].get_text()
receiver = trs[1].find_all('td')[1].get_text()
address = trs[3].find('td').get_text()
parcel = Parcel()
parcel.sender = sender
parcel.receiver = receiver
parcel.address = address
parcel.note = note
self.parcel = parcel
track_table = parser.find('table', {'class': 'c_table_01'})
trs = track_table.find_all('tr')
for tr in trs:
tds = tr.find_all('td')
if len(tds) == 5:
time = '%s %s' % (
tds[0].find('span').get_text(),
tds[1].find('span').get_text(),
)
status = tds[2].find('span').get_text()
location = tds[3].find('span').get_text()
phone1 = tds[4].find('span').get_text()
track = Track()
track.time = time
track.status = status
track.location = location
track.phone1 = phone1
self.add_track(track)