• 2007-09-14 - []2007-09-14

    $ cat ip-geo.py

    #!/usr/bin/python
     
    import sys
    import urllib
    import 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()
    




    Tags:

    非非 发表于 16:45:00 | 引用 0 | 编辑

评论

  • 没有办法了,我跟Bus的管理员说过了多少次都没有用,pre中的空格不要删除了!

    rrr () 发表于 2007-09-14 16:46:48   [回复]

发表评论