def _get_character_achievements(self, name, realm, site): urls = WoWSpyderLib.get_character_achievement_urls(name, realm, site) achievements = [] for url in urls: source = self._download_url(url) achievements.append(self._parse_character_achievements( \ StringIO.StringIO(source), name, realm, site)) return WoWSpyderLib.merge(achievements)
def _get_character_statistics(self, name, realm, site): urls = WoWSpyderLib.get_character_statistics_urls(name, realm, site) statistics = [] for url in urls: source = self._download_url(url) statistics.append(self._parse_character_statistics( \ StringIO.StringIO(source), name, realm, site)) return WoWSpyderLib.merge(statistics)
def _parse_guild_characters(self, name, realm, site): """Page through a guild, creating characters.""" character_list = [] log.debug(name + " " + realm + ": Downloading guild page") source = self._download_url( \ WoWSpyderLib.get_guild_url(name, realm, site, page=1)) character_list.append(self._parse_guild_file(StringIO.StringIO(source), site)) return WoWSpyderLib.merge(character_list)
log.debug(battlegroup + " " + realm + \ ": Downloading arena page " + str(page) + " of " \ + str(max_pages)) try: source = self._download_url( \ WoWSpyderLib.get_arena_url(battlegroup, realm, site, page=page, \ ladder_number=ladder_number)) except Exception, e: log.warning("Couldn't get arena page, continuing... ERROR: " + str(e)) continue teams = self._parse_arena_file(StringIO.StringIO(source), site, get_characters=get_characters) all_teams.append(teams) return WoWSpyderLib.merge(all_teams) def _parse_arena_file(self, xml_file_object, site, get_characters=False): """Parse the XML of an arena page""" xml = minidom.parse(xml_file_object) team_nodes = xml.getElementsByTagName("arenaTeam") teams = [] for team_node in team_nodes: name = team_node.attributes["name"].value realm = team_node.attributes["realm"].value size = team_node.attributes["size"].value try: team = self._tp.get_team(name, realm, site, size, get_characters=get_characters) except Exception, e: