源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python网页请求urllib2模块简单封装代码

  • 时间:2021-04-07 11:42 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python网页请求urllib2模块简单封装代码
对python网页请求模块urllib2进行简单的封装。 例子:
[u]复制代码[/u] 代码如下:
#!/usr/bin/python #coding: utf-8 import base64 import urllib import urllib2 import time class SendRequest:   '''   This class use to set and request the http, and get the info of response.   e.g. set Authorization Type, request tyep..   e.g. get html content, state code, cookie..   SendRequest('http://10.75.0.103:8850/2/photos/square/type.json',               data='source=216274069', type='POST', auth='base',      user='zl2010', password='111111')   '''   def __init__(self, url, data=None, type='GET', auth=None, user=None, password=None, cookie = None, **header):     '''     url:request, raise error if none     date: data for post or get, must be dict type     type: GET, POST     auth: option, if has the value must be 'base' or 'cookie'     user: user for auth     password: password for auth     cookie: if request with cookie     other header info:     e.g. referer='www.sina.com.cn'        '''     self.url = url     self.data = data     self.type = type     self.auth = auth     self.user = user     self.password = password     self.cookie = cookie     if 'referer' in header:       self.referer = header[referer]     else:       self.referer = None     if 'user-agent' in header:       self.user_agent = header[user-agent]     else:       self.user_agent = None     self.setup_request()     self.send_request()    def setup_request(self):     '''     setup a request     '''     if self.url == None or self.url == '':       raise 'The url should not empty!'     # set request type     #print self.url     #print self.type     #print self.data     #print self.auth     #print self.user     #print self.password      if self.type == 'POST':        self.Req = urllib2.Request(self.url, self.data)     elif self.type == 'GET':       if self.data == None:           self.Req = urllib2.Request(self.url)       else:         self.Req = urllib2.Request(self.url + '?' + self.data)     else:       print 'The http request type NOT support now!'     ##set auth type     if self.auth == 'base':       if self.user == None or self.password == None:         raise 'The user or password was not given!'       else:         auth_info = base64.encodestring(self.user + ':' + self.password).replace('\n','')         auth_info = 'Basic ' + auth_info         #print auth_info           self.Req.add_header("Authorization", auth_info)     elif self.auth == 'cookie':       if self.cookie == None:         raise 'The cookie was not given!'       else:         self.Req.add_header("Cookie", self.cookie)     else:       pass    ##add other auth type here     ##set other header info     if self.referer:       self.Req.add_header('referer', self.referer)     if self.user_agent:       self.Req.add_header('user-agent', self.user_agent)         def send_request(self):      '''     send a request     '''     # get a response object     try:       self.Res = urllib2.urlopen(self.Req)       self.source = self.Res.read()       self.goal_url = self.Res.geturl()       self.code = self.Res.getcode()       self.head_dict = self.Res.info().dict       self.Res.close()     except urllib2.HTTPError, e:       self.code = e.code       print e           def get_code(self):     return self.code   def get_url(self):     return self.goal_url   def get_source(self):            return self.source   def get_header_info(self):     return self.head_dict   def get_cookie(self):     if 'set-cookie' in self.head_dict:       return self.head_dict['set-cookie']     else:       return None      def get_content_type(self):     if 'content-type' in self.head_dict:       return self.head_dict['content-type']     else:       return None   def get_expires_time(self):     if 'expires' in self.head_dict:       return self.head_dict['expires']     else:       return None      def get_server_name(self):     if 'server' in self.head_dict:       return self.head_dict['server']     else:       return None     def __del__(self):     pass   __all__ = [SendRequest,] if __name__ == '__main__':   '''   The example for using the SendRequest class   '''   value = {'source':'216274069'}   data = urllib.urlencode(value)   url = 'http://10.75.0.103:8850/2/photos/square/type.json'   user = 'wz_0001'   password = '111111'   auth = 'base'   type = 'POST'   t2 = time.time()   rs = SendRequest('http://www.google.com')   #rs = SendRequest(url, data=data, type=type, auth=auth, user=user, password=password)   print 't2: ' + str(time.time() - t2)   print '---------------get_code()---------------'   print rs.get_code()   print '---------------get_url()---------------'   print rs.get_url()   print '---------------get_source()---------------'   print rs.get_source()   print '---------------get_cookie()---------------'   print rs.get_cookie()   rs = None
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部