Welcome, guest | Sign In | My Account | Store | Cart
#!/usr/bin/python

# v0.01

# cgiproxy.py

# Copyright Michael Foord
# Not for use in commercial projects without permission. (Although permission will probably be given).
# If you use this code in a project then please credit me and include a link back.
# If you release the project then let me know (and include this message with my code !)

# No warranty express or implied for the accuracy, fitness to purpose or otherwise for this code....
# Use at your own risk !!!

# E-mail or michael AT foord DOT me DOT uk
# Maintained at www.voidspace.org.uk/atlantibots/pythonutils.html

import sys
import cgi
import urllib2

sys.stderr = sys.stdout

HOMEPAGE = 'www.google.co.uk'

######################################################

def getform(valuelist, theform, notpresent=''):
    """This function, given a CGI form, extracts the data from it, based on
    valuelist passed in. Any non-present values are set to '' - although this can be changed.
    (e.g. to return None so you can test for missing keywords - where '' is a valid answer but to have the field missing isn't.)"""
    data = {}
    for field in valuelist:
        if not theform.has_key(field):
            data[field] = notpresent
        else:
            if  type(theform[field]) != type([]):
                data[field] = theform[field].value
            else:
                values = map(lambda x: x.value, theform[field])     # allows for list type values
                data[field] = values
    return data


def pagefetch(thepage):
    req = urllib2.Request(thepage)
    u = urllib2.urlopen(req)
    data = u.read()
    return data

        
        
###################################################

if __name__ == '__main__':
    form = cgi.FieldStorage()           
    data = getform(['url'],form)
    if not data['url']: data['url'] = HOMEPAGE
    print "Content-type: text/html"         # this is the header to the server
    print                                   # so is this blank line
    test = pagefetch('http://' + data['url'])
    print test
    

History