美文网首页Python
Python urllib-request模块

Python urllib-request模块

作者: 大狗熊熊熊熊熊 | 来源:发表于2022-07-24 21:08 被阅读0次
    urllib.request模块常用类有
    1.urllib.request.HTTPDefaultErrorHandler 《处理http响应错误》
    2.urllib.request.HTTPRedirectHandler 《处理重定向》
    3.urllib.request.HTTPCookieProcessor 《处理cookieHandler需要配合http.cookiejar使用》
      例:
      cookie = http.cookiejar.CookieJar()
      cookieHandler = urllib.request.HTTPCookieProcessor(cookie)
      opener = urllib.request.build_opener(cookieHandler)
      opener.open(url)
      cookie在这里,opener只是用于打开链接
    4.urllib.request.HTTPPasswordMgr 《管理URL领域用户名密码的映射》
      例:
      map = urllib.request.HTTPPasswordMgrWithDefaultRealm()
      map.add_password(NONE,url,"username","password")
    5.urllib.request.ProxyHandler 《设置代理》
      例:
      proxy = urllib.request.ProxyHandler({"key":"value"})
      opener = urllib.request.build_opener(proxy)
      result = opener.oepn(url)
    6.urllib.request.HTTPBasicAuthHandler 《处理URL领域用户名密码的映射并返回一个管理认证handler对象》
      例:
      map = urllib.request.HTTPPasswordMgrWithDefaultRealm()
      map.add_password(NONE,url,"username","password")
      authHandler = urllib.request.HTTPBasicAuthHandler(map)
    7.urllib.request.OpenerDirector《串接在一起的 BaseHandler 打开 URL》
    8.urllib.requset.Request() 《构造url请求抽象类》
      urllib.requset.Request(url,data,headers,origin_req_host,unverifiable,mothod) 
      例:
      url = "https://www.httpbin.org/post"
      data = bytes(urllib.parse.urlencode({"key":"example"}),encoding="utf-8") 
      headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)     
      AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"}
      origin_req_host = 略
      unverifiable = 略
      method = "post"
      request = urllib.requset.Request(url,data,headers,method)
      result = urlib.request.urlopen(request)
    
    urllib.request模块常用类函数有
    1.urllib.request.urlopen() 《打开统一资源定位地址 url》
      例:
      urllib.request.urlopen("https://www.baidu.com")  《无参数例子》
      urllib.request.urlopen("https://www.httpbin.org/post",data=data) 《带data参数  
      例子》
      data=bytes(urllib.parse.urlencode({"key":"example"}),encoding="utf-8") 《带 
      参数例子data值》
      urllib.request.urlopen("https://www.baidu.com/get",timeout=1) 《带timeout参 
      数例子》
    
    2.urllib.request.build_opener() 《返回一个 OpenerDirector实例,以接受的handler参数决定要处理的实际Handler类》
      例:处理HTTPBasicAuthHandler管理认证Handler
      map = urllib.request.HTTPPasswordMgrWithDefaultRealm
      map.add_password(NONE,url,"username","password")
      authHandler = urllib.request.HTTPBasicAuthHandler(map)
      opener = urllib.request.build_opener(authHandler)
      reusult = opener.open(url)
    

    相关文章

      网友评论

        本文标题:Python urllib-request模块

        本文链接:https://www.haomeiwen.com/subject/oqdwirtx.html