HTTP.py
General.pyCode:#!/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"))
I'll post some examples later.Code:#!/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.sep
Functions to use: GET, POST, Set_Referer, Clear_Cookies, Set_Last_URL, Get_Last_URL.
Results 1 to 19 of 19
Thread: HTTP Class for Python 3.1
Threaded View
- 04 Feb. 2010 01:32am #1
HTTP Class for Python 3.1
Last edited by Riddle; 05 Feb. 2010 at 12:21am.