¶urllibk库
¶request模块
¶urlopen()
Api:
1 | urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, *, cafile=None, capath=None, cadefault=False, context=None) |
-
url:字符串url或Request类
-
data:字典类需要转码为字节流,如:
1 | data = bytes(urllib.parse.urlencode('word': 'hello'), encoding='utf8') |
-
timeout:设置超时时间,超出这个时间未响应,抛出URLError异常,属于urllib.error模块。
-
cafile:CA证书
-
capath:CA证书路径
-
cadefault:已弃用,默认False
-
context:ssl.SSLContext类型,指定SSL设置,实现SSL加密传输。
¶Request类
urllib.request.Request
1 | class Request: |
-
url
-
data:和上面一样,必须传 bytes (字节流)类型.。
-
heads:请求头,也可以调用add_header()添加。
包括:
-
Accept:浏览器端可以接受的媒体类型,例如text/html表示html文档,*表示任意类型
-
Accept-Encoding
-
Accept-Language
-
Connection:
例如: Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。
例如: Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。
-
Host
-
Referer
-
User-Agent:
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)。
伪装浏览器
-
Cache-Control
-
Cookie
用法:
1 | headers = { |
- origin_req_host:请求方的host名称或IP地址
- unverifiable:这个请求是否无法验证,默认False
- method:字符串,指定请求使用的方法,比如GET,POST,PUT。
¶HTTPResponse
¶urlopen()返回类型
1 | import urllib.request |
输出结果:<class ‘http.client.HTTPResponse’>
¶使用函数
read() 返回的网页内容
print(response.read().decode('utf-8'))
readinto()
getheader(name)
getheaders()
fileno()
¶属性
msg
version
status 200表示成功,404表示网页未找到
reason
debuglevel
closed