- 本文主要包括三个方面
- 请求模块 urllib.request
- 解析模块 urllib.parse
- 异常处理模块 urllib.error
请求模块 urllib.request
1. urllib.request.urlopen
urllib.request.urlopen(url,data = None,timeout=None)
常见的三个参数–url,data,timeout
url参数
import urllib.request
response=urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))#用返回获取响应的内容
data参数
–get请求,不需要添加data参数(请求数据可以放在请求的url结尾)
–post请求,一定要注意对传递的数据进行url编码
import urllib.request
import urllib.parse
#对data参数进行编码
data=bytes(urllib.parse.urlencode(
{'word':'hello'},encoding='utf-8',
)
res=urllib.request.urlopen('http://www.baidum.com',data=data)
timeout参数
作用:有时候网络不稳定或者服务器异常,避免为了让程序一直等待,可以对请求进行超时设置
import urllib.request
res=urllib.request.urlopen('http://www.baidu.com',timeout=3)#timeout的单位为秒;若出现超时,会返回socket.timeout
print(res.read())
注意:
res.getheaders()—得到响应头
res.status—得到状态码
res.read()—-得到响应文本(二进制的bytes字节组)