概述
urllib是python内置的http库,模拟浏览器向web服务器发送http请求,并处理响应数据
位置:
python安装目录/Lib/urllib/
主要是request.py文件
源码分析
导入http模块
调用
urlopen()函数build_opener()函数,创建并返回OpenerDirector对象urlopen()函数调用OpenerDirector对象的open()函数,并返回- 类
OpenerDirector对象的open()函数,该函数创建Request对象,调用_open(),并传入Request对象,_open()调用_call_chain()函数,然后调用HTTPHandler的http_open(),该函数调用AbstractHTTPHandler的do_open(),该函数通过http.client.HTTPConnection类发出http请求 - 在1302行代码可见,
headers["Connection"] = "close",表示不使用长连接。然后调用http.client.HTTPConnection类的request()方法,http.client.HTTPConnection类的getresponse()方法,该方法创建HTTPResponse类对象,调用begin()方法,
函数
_call_chain()调用_call_chain函数,
—>open_http—>_open_generic_http_open_generic_http第一参数是http模块的HTTPConnection类,