requests模块基础
requests模块是python第三方模块,需要进行安装后才能够进行使用,主要功能为发起http请求,为爬虫中常用的模块。
安装命令
pip install requests
请求举例。
from requests import * //导入requests 模块
resp = get("http://www.baidu.com") //发起最简单的http GET请求。
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Accept-Encoding": "gzip, deflate",
} //设置http请求头,避免被识别为爬虫,封掉ip地址
payload = {"key":"value",} //设置请求参数,在GET请求中也可以直接拼接到url中。
cookie = {'key':'value',} //设置cookie
resp = get(url="https://www.baidu.com", headers=header,params=payload,cookies=cookie,verify=Fales,timeout=5) //完成的一次请求。
//verify=False 处理证书验证失败,请求抛出SSLError的情况,错误信息为 requests.exceptions.SSLError: xxx
POST发送请求
resp = post(url="http://www.baidu.com", data=payload) //参数使用data传递
resp = post(url="http://www.baidu.com", data=json.dumps(payload))//传递json时可以使用json模块的json.dumps()转译成json格式
resp = post(url="http://www.baidu.com", json=payload //这种格式来确定。
requests模块支持发送GET,POST,PUT,DELETE等各种http请求,整体而言请求格式大同小异,整体相同。
POST请求时Content-type的内容,除了特殊情况外,其实在实际操作中也并不会有多大影响。
application/x-www-form-urlencoded //最常见post提交数据的方式,以form表单形式提交数据
application/json //以json串提交数据。
multipart/form-data //一般使用来上传文件
响应内容
resp.content //二进制格式的内容主题,可以使用resp.content.decode("UTF-8"),不容易出现乱码。
resp.text //返回内容主题
resp.status_code //返回的状态码
resp.encoding //返回的编码格式,
resp.url //请求的url,若存在跳转,则url是跳转后的url的值。
resp.headers //返回的响应头信息。
参考链接
https://developer.aliyun.com/article/364819
https://www.cnblogs.com/ranxf/p/7808537.html