[Python] Session Class
Last Tested in Python Version: 3.1.2
Basically an HTTP Wrapper for Python.
Feel free to add any functions you'd like to see in the class, or make any changes. I'll gladly edit the post here.
If anyone can manage to add Proxy support to this class, it would be beneficial for everyone.
Again, it hasn't been fully documented yet. I'll try to get to it ASAP.
Changelog:
Basically an HTTP Wrapper for Python.
Feel free to add any functions you'd like to see in the class, or make any changes. I'll gladly edit the post here.
If anyone can manage to add Proxy support to this class, it would be beneficial for everyone.

Again, it hasn't been fully documented yet. I'll try to get to it ASAP.
#!/usr/bin/env python
#####################
#Author: Riddle
#Website: www.logicalgamers.com
#E-mail: NONE
#Version: 0.9.1
#####################
import general
from urllib.parse import urlencode
import urllib.request
import gzip
import http.cookiejar
import socket
import io
socket.setdefaulttimeout(10)
class HTTP:
def __init__(self, user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.86 Safari/533.4'):
self.USER_AGENT = user_agent
self.ENCODING = 'gzip'
self.ID = None
self.Cookie_Jar = http.cookiejar.LWPCookieJar()
self.Last_URL = None
self.Referer = None
def Set_Referer (self, Ref = None):
self.Referer = Ref
def Clear_Cookies (self):
self.Cookie_Jar.clear_session_cookies()
def Get_Opener (self):
Opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(self.Cookie_Jar))
if self.Referer != None and self.ENCODING != None:
Opener.addheaders = [('User-Agent', self.USER_AGENT),('Accept-Encoding', self.ENCODING),('Referer', self.Referer)]
elif self.Referer != None and self.ENCODING == None:
Opener.addheaders = [('User-Agent', self.USER_AGENT),('Referer', self.Referer)]
elif self.Referer == None and self.ENCODING != None:
Opener.addheaders = [('User-Agent', self.USER_AGENT), ('Accept-Encoding', self.ENCODING)]
else:
Opener.addheaders = [('User-Agent', self.USER_AGENT)]
self.Referer = None
return Opener
def POST (self, URL, Data):
if Data.__class__ == dict:
Data = urllib.parse.urlencode(Data)
return self.GET(URL, Data)
def GET (self, URL, Data = None, enc = "utf-8"):
try:
Request = urllib.request.Request(URL, Data)
Opener = self.Get_Opener()
Contents = Opener.open(Request)
Source = Contents.read()
if self.ENCODING == 'gzip':
try:
Compressed_Data = io.BytesIO(Source)
Decompressed_Data = gzip.GzipFile(fileobj = Compressed_Data)
Source = Decompressed_Data.read()
except:
general.General().Log_Error("Error decoding GZip.\nURL: " + URL + "\nData: " + Data + "\n\n")
return str(Source,enc)
except:
return "__ERROR__"
def Get_Last_URL(self):
return self.Last_URL
def Set_Last_URL(self, URL = None):
self.Last_URL = URL
def Save_Image(self, URL, path = None):
Opener = urllib.request.build_opener()
Contents = Opener.open(URL)
Image = Contents.read()
general.General().Str_To_File(Image,path,'wb')Changelog:
- 6/30/2010: Added version doc. in the class. Need to add proxy support.
- 7/4/2010: Version 0.9.1; Added Save_Image().