home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyos2bin.zip / Demo / tkinter / www / www3.py < prev    next >
Text File  |  1996-11-27  |  940b  |  47 lines

  1. #! /usr/bin/env python
  2.  
  3. # www3.py -- print the contents of a URL on stdout
  4. # - error checking
  5. # - Error 302 handling
  6.  
  7. import sys
  8. import urllib
  9. import types
  10.  
  11. def main():
  12.     if len(sys.argv) != 2 or sys.argv[1][:1] == '-':
  13.         print "Usage:", sys.argv[0], "url"
  14.         sys.exit(2)
  15.     url = sys.argv[1]
  16.     fp = my_urlopen(url)
  17.     while 1:
  18.         line = fp.readline()
  19.         if not line: break
  20.         sys.stdout.write(line)
  21.  
  22. def my_urlopen(url):
  23.     try:
  24.         fp = urllib.urlopen(url)
  25.         return fp
  26.     except IOError, msg:
  27.         if type(msg) == types.TupleType and len(msg) == 4:
  28.             m = msg[3]
  29.             if msg[1] == 302:
  30.                 if m.has_key('location'):
  31.                     url = m['location']
  32.                     print 'Location:', url
  33.                     return my_urlopen(url)
  34.                 elif m.has_key('uri'):
  35.                     url = m['uri']
  36.                     print 'URI:', url
  37.                     return my_urlopen(url)
  38.                 print '(Error 302 w/o Location/URI header???)'
  39.             print msg[:3]
  40.             for line in m.headers:
  41.                 sys.stdout.write(line)
  42.         else:
  43.             print msg
  44.         sys.exit(1)
  45.  
  46. main()
  47.