urllib为python内置的HTTP请求库,包含四个模块:
1. urlopen()
实现最基本的请求发起,urlopen(url, data=None, [timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
代码:
输出:
<class 'http.client.HTTPResponse'>
response为HTTPRsponse对象:
方法包含:read(),readinto(),getheader(name),getheaders(),fileno()
属性包含:msg,version,status,reason,debuglevel、closed
.data参数
如果不加参数为GET请求,加参数则为POST请求,参数需要先转化为bytes类型
代码:
.timeout参数
设置超时时间,单位为秒,如果请求在设置时间内没有响应,就会抛出异常,默认为全局时间
.其他参数
cafile和capath指定CA证书和路径,context必须是ssl.SSLContext类型,用来指定SSL设置
2. Request
urlopen()只能发起简单的请求,Request可以构建完整的请求信息,然后将Request对象传递给urlopen
Request(url, data=None, headers={},origin_req_host=None, unverifiable=False,method=None)
参数:
代码:
3.高级用法Handler
处理更高级的操作,如Cookies,代理,登录验证等。Handler是urllib.request的类
思路:用Handler类构建一个handler------通过build_opener()方法和handle构造一个opener------通过opener的open()方法发送请求
踩坑:
1.新建python文件时命名为urllib,导包报错---py文件名不能用库和关键字名称命名;