HTTP Class for Python 3.1
HTTP.py
General.py
I'll post some examples later.
Functions to use: GET, POST, Set_Referer, Clear_Cookies, Set_Last_URL, Get_Last_URL.
#!/usr/bin/env python
#HTTP Class
#Author: Riddle
#E-mail: riddle_lg@live.com
import General
import urllib.request
import urllib.parse
import gzip
import http.cookiejar
import socket
import io
socket.setdefaulttimeout(10)
class HTTP:
def __init__(self):
self.USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)'
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: " + str(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
if __name__ == "__main__":
print(HTTP().GET("http://www.google.com"))General.py
#!/usr/bin/env python
#####################
#Author: Riddle
#Website: www.logicalgamers.com
#E-mail: riddle_lg@live.com
#####################
#Collection of useful and general functions
import hashlib
import sys
import re
import os
import time
import random
class General:
def __init__(self):
random.seed(time.time())
pass
def sleep(self,s):
time.sleep(s)
def random(self,low,high):
return random.randrange(low,high)
def md5Digest(self, Str1):
a = hashlib.md5() #Create new MD5 object
a.update(Str1.encode('utf-8')) #Prepares password string to be digested
return a.hexdigest() #Returns the final outcome
def Log_Error(self, Data, File_Name = 'Error Log.txt', Mode = 'a'):
Target = open(os.getcwd()+self.sep()+File_Name, Mode)
Target.write(Data)
Target.close()
def Paused_Exit(self):
a = input("\nPress Enter To Exit...")
sys.exit(1)
def Str_To_File(self, str1, path, mode = "a"):
f = open(path, mode)
f.write(str1)
f.close()
def List_To_File(self, lst1, path, mode = "a", line_break = False): #Line Break adds a \n after each line
f = open(path,mode)
if line_break == False:
f.writelines(lst1)
else:
for line in lst1:
f.write(line+"\n")
f.close()
def File_To_List(self, path):
f = open(path, "r")
lines = f.readlines()
new_list = []
for line in lines:
new_list.append(line.strip())
f.close()
return new_list
def File_To_Str(self, path):
f = open(path, "r")
str1 = f.read()
f.close()
return str1
def De_Dupe_List(self, lst, case_sensitive = False):
if case_sensitive == False:
for item in lst:
for citem in lst:
if item != citem:
if item.lower() == citem.lower():
lst.remove(citem)
for item in lst:
lst.remove(item)
if not item in lst:
lst.append(item)
return lst
def Find_All(self, pattern, strToSearch):
#Find all matching strings with a Reg Ex.
pattern = re.compile(pattern)
return re.findall(pattern, strToSearch)
def Dir_Exists(self,path):
"Returns True if it exists"
return os.path.isdir(path)
def File_Exists(self,path):
"Returns True if the file exists"
return os.path.isfile(path)
def Cur_Dir(self):
"Returns Current Directory"
return os.getcwd()
def mkdir(self,path):
"Makes Directory on Path"
os.mkdir(path)
def sep(self):
return os.path.sepI'll post some examples later.
Functions to use: GET, POST, Set_Referer, Clear_Cookies, Set_Last_URL, Get_Last_URL.