parse 可以对url 拆分、组合、编码、解码、拼接
from urllib import parse,error,request
parse.urlencode():将字典类型的参数转为url编码格式
form_data = {
'sex': 'f',
'key': '',
'stc': '1: 11, 2: 20.28, 23: 1',
'sn': 'default',
}
get请求直接使用urlencode将参数转为url编码格式
form_data1 = parse.urlencode(form_data)
print(form_data1)
post请求urlencode将参数转为url编码格式,然后使用encode方法将字符串转为bytes类型
form_data2 = parse.urlencode(form_data).encode('utf-8')
print(form_data2)
parse.parse_qs():将url编码格式转换为字典
parmas = parse.parse_qs(form_data1)
print(parmas)
key = '厉害了我的国'
parse.quote():将中文转为url编码
result = parse.quote(key)
print(result)
parse.unquote():将url编码的字符转化为中文字符
unquote = parse.unquote(result)
print(unquote)
parse.urljoin():将不完整的url参照基类url,拼接完整
base_url = 'http://www.qidian.com/book/123456.html'
sub_url = '123456789.html'
fun = parse.urljoin(base_url,sub_url)
print(fun)
ParseResult(
scheme='http', 协议
netloc='www.qidian.com', ip域
path='/book/123456.html', 路径
params='', 参数
query='', 查询参数(?后面拼接的参数)
fragment='' 锚点
)
parse.urlparse():将url进行拆分
result = parse.urlparse(base_url)
print(result)
print(result.scheme)
parse.urlunparse(): 将url的各个部分合并为一个完整的url
url_datas = ('http','www.baidu.com','book','','wd=xxx','1234')
fun_url = parse.urlunparse(url_datas)
print(fun_url)
URLError和HTTPError
URLError:来自urllib库的error模块,继承自OSError,由request模块产生的异常都可以通过捕捉这个类来处理.
产生的原因主要有:
- 没有网络连接
- 服务器连接失败
- 找不到指定的服务器
HTTPError是URLError的子类,我们发出一个请求时,服务器上都会对应一个response应答对象,其中它包含一个数字"响应状态码"。
有三个属性:
code:返回HTTP的状态码
reason:返回错误原因
headers:返回请求头
作者:优秀的人A
链接:https://www.jianshu.com/p/6ec9cbc44bfe
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。