parse模块和error模块的相关知识

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:返回请求头

你可能感兴趣的:(parse模块和error模块的相关知识)