Source code for armatis.parsers.hanjin

# -*- coding: utf-8 -*-

from armatis.models import Track, Parcel
from armatis.parser import Parser, ParserRequest


[docs]class HanjinParser(Parser): def __init__(self, invoice_number, config): super(HanjinParser, self).__init__(invoice_number, config) parser_request = ParserRequest(url='http://www.hanjin.co.kr/Delivery_html/inquiry' \ '/result_waybill.jsp?wbl_num=%s' % self.invoice_number) self.add_request(parser_request)
[docs] def parse(self, parser): tables = parser.find_all('tbody') if (len(tables) > 0): basic_info = tables[0].find_all('td', {'class': 'bb'}) tracking_info = tables[1].find_all('tr') stuff_name = getattr(basic_info[1], 'get_text', '')(strip=True) sender_name = getattr(basic_info[3], 'get_text', '')(strip=True) receiver_name = getattr(basic_info[4], 'get_text', '')(strip=True) receiver_address = getattr(basic_info[5], 'get_text', '')(strip=True) parcel = Parcel() parcel.sender = sender_name parcel.receiver = receiver_name parcel.address = receiver_address parcel.note = stuff_name self.parcel = parcel for tr in tracking_info: tds = tr.find_all('td') if len(tds) == 5: date = getattr(tds[0], 'get_text', '')(strip=True) time = getattr(tds[1], 'get_text', '')(strip=True) location = getattr(tds[2], 'get_text', '')(strip=True) status = getattr(tds[3], 'get_text', '')(strip=True) phone = getattr(tds[4], 'get_text', '')(strip=True) track = Track() track.time = '%s %s' % (date, time) track.location = location track.status = status track.phone1 = phone self.add_track(track)