1. requests 和 urllib库的区别
模拟发起网络请求,主要用到的库有:requests库和python内置urllib库,一般建议使用requests库,他是对urllib的再次封装。
他们的主要区别是:requests可以直接构建常用的get和post请求并发起;urllib一般要先构建get或post请求,然后再发起请求。
2. 报错:ModuleNotFoundError: No module named 'requests'
原因:未安装requests模块,无法正常导入
安装requests模块:
-- 在python的同级目录下找到scripts文件夹,进入该文件夹,获取到目录地址
--cmd中进入该地址中,输入命令:pip install requests
3. requests的使用命令
import requests
#get请求不带参数
Response_get = requests.get(url)
#get请求带参数
Response_get = requests.get(url,params={...})
#post
Response_post = requests.post(url, data=data)
#响应的内容
r.encoding #获取当前的编码
r.encoding = 'utf-8' #设置编码
r.text #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.status_code #响应状态码
r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()
r.ok # 查看r.ok的布尔值便可以知道是否登陆成功
#*特殊方法*#
r.json() #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.raise_for_status() #失败请求(非200响应)抛出异常