python之urllib

概述

urllib是python内置的http库,模拟浏览器向web服务器发送http请求,并处理响应数据

位置:

python安装目录/Lib/urllib/

主要是request.py文件

源码分析

  1. 导入http模块

  2. 调用urlopen()函数

    1. build_opener()函数,创建并返回OpenerDirector对象
    2. urlopen()函数调用OpenerDirector对象的open()函数,并返回
    3. 类OpenerDirector对象的open()函数,该函数创建Request对象,调用_open(),并传入Request对象,_open()调用_call_chain()函数,然后调用HTTPHandler的http_open(),该函数调用AbstractHTTPHandler的do_open(),该函数通过http.client.HTTPConnection类发出http请求
    4. 在1302行代码可见,headers["Connection"] = "close",表示不使用长连接。然后调用http.client.HTTPConnection类的request()方法,http.client.HTTPConnection类的getresponse()方法,该方法创建HTTPResponse类对象,调用begin()方法,
  3. 函数_call_chain()调用_call_chain函数,
    —>open_http—>_open_generic_http
    _open_generic_http第一参数是http模块的HTTPConnection类,


原文出处:/show_1EF2a2PrPCHP.html