http协议介绍
http请求
get
- 无参数传递
url = "http://www.baidu.com"
r = requests.get(url=url)
print(r.url)
print(r.status_code)
-
有参数传递
通过params来传递参数
post
- 有参数
post请求用data传递参数
content和text用法:
content和text两个对象中,两者区别在于,content中间存的是字节码,而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码成字符串。
直接输出content,会发现前面存在b’这样的标志,这是字节字符串的标志,而text是没有前面的b,对于纯ascii码,这两个可以说一模一样,对于其他的文字,需要正确编码才能正常显示。
大部分情况建议使用text,因为显示的是汉字,但有时会显示乱码,这时用content.decode(‘utf-8’),中文常用utf-8和GBK,GB2312等。这样可以手工选择文字编码方式。
所以简而言之,text是现成的字符串,content还要编码,但是text不是所有时候显示都正常,这是就需要用content进行手动编码。
注:所以第一次用content需要转换成字符串,text则不需要
自定义请求头
用headers参数传递请求头的值
http响应
- 获取响应状态码
r.status_code
- 获取相应文本
r.text 返回的对应的源代码,,,r.content 返回的对应的二进制数据
- 获取相应头
分为请求头和响应头
# 响应头
print(r.headers)
# 请求头
print(r.request.headers)
- 请求url
print(r.url)
- 获取cookie
url = "https://baidu.com"
r = requests.get(url)
print(r.cookies)
获取cookie
url = "https://baidu.com"
r = requests.get(url)
print(r.cookies)