Mercurial > eagle-eye
diff pyikriam/buildings.py @ 168:8f699a9da6c0
Extract building level of townhalls.
- townhall class is responding to extract information about townhall.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sun, 02 Nov 2008 02:26:28 +0800 |
parents | |
children | 9f248c8460ce |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pyikriam/buildings.py Sun Nov 02 02:26:28 2008 +0800 @@ -0,0 +1,45 @@ +from lazy.www import c +from lxml import etree +from StringIO import StringIO + +class position(object): + def __init__(self, build_type, city_id, idx, baseurl): + self._baseurl = baseurl + '/index.php' + self.build_type = build_type + self.city_id = city_id + self.idx = idx + self._params = {'view': 'buildingGround', + 'id': city_id, + 'position': idx} + pass + + def get_page(self): + page = c(self._baseurl).get(self._params).get_content() + return page + pass + +class townhall(position): + xpath_patterns = { + 'level': '/div/div/div[@class=\'buildingLevel\']/text()' + } + + def __init__(self, city_id, idx, baseurl): + super(townhall, self).__init__('townhall', city_id, idx, baseurl) + pass + + def _sync(self, page): + parser = etree.HTMLParser(encoding='utf8') + page_dom = etree.parse(StringIO(page), parser) + xpath_building = '/html/body/div/div' + for name, ptn in self.xpath_patterns.items(): + path = xpath_building + ptn + value = page_dom.xpath(path)[0] + setattr(self, name, value) + pass + pass + + def sync(self): + page = self.get_page() + self._sync(page) + pass + pass