一个Python HTMLParser的使用例子

来源:互联网 发布:某市优化投资环境 编辑:程序博客网 时间:2024/06/02 19:28
#!/usr/bin/env python import sysimport urllibimport HTMLParser class CustomParser(HTMLParser.HTMLParser):    selected = ('table', 'h1', 'font', 'ul', 'li', 'tr', 'td', 'a')        def reset(self):        HTMLParser.HTMLParser.reset(self)        self._level_stack = []    def handle_starttag(self, tag, attrs):        if tag in CustomParser.selected:            self._level_stack.append(tag)    def handle_endtag(self, tag):        if self._level_stack \        and tag in CustomParser.selected \        and tag == self._level_stack[-1]:            self._level_stack.pop()    def handle_data(self, data):        if "/".join(self._level_stack) in (            'table/tr/td',            'table/tr/td/h1/font',            'table/tr/td/ul/li'):            print self._level_stack, data        if len(sys.argv) > 1:    params = urllib.urlencode({'ip': sys.argv[1], 'action': 2})else:    params = None content = unicode(urllib.urlopen('http://www.ip138.com/ips8.asp',params).read(), 'GB2312') parser = CustomParser()parser.feed(content)parser.close()


点击打开链接1

点击打开链接2