requests 模块用于发送HTTP请求,并对请求信息进行简单处理。
7个主要方法
① request
requests.request(method, url, **kwargs):构造一个请求,支撑以下各方法的基础方法。
method :请求方式,对应get/post等
url :网页链接
**kwargs :关键字参数,可选,共13个
② get
requests.get(url, params, **kwargs):从指定的资源请求数据,是获取HTML网页信息的主要方法,对应HTTP的GET。
params :字典或字节序列格式,将作为参数增加到url中,可选
③ post
requests.post(url, data, json, **kwargs):向指定的资源提交要被处理的数据,对应HTTP的POST。
data :data参数的对象一般是字典类型,在发出请求时会自动编码为表单形式
json :json参数会自动将字典类型的对象转换为json格式
④ head
requests.head(url, **kwargs):获取HTML网页头部信息的方法,对应HTTP的HEAD。
⑤ put
requests.put(url, data, **kwargs):向HTML网页提交PUT请求的方法,对应HTTP的PUT。
⑥ patch
requests.patch(url, data, **kwargs):向HTML网页提交局部修改请求,对应于HTTP的PATCH。
⑦ delete
requests.delete(url, **kwargs):向HTML页面提交删除指定资源的请求,对应HTTP的DELETE。
13个关键字参数
**kwargs:控制访问的参数,均为可选项。
1)params
字典或字节序列格式,将作为参数增加到url中。
2)data
data参数的对象一般是字典类型,在发出请求时会自动编码为表单形式。也可以是字节序列或文件对象,作为Request的内容。
3)json
JSON格式的数据,作为Request的内容。json参数会自动将字典类型的对象转换为json格式。
4)headers
字典格式,为请求添加 HTTP 头部信息,模拟浏览器进行访问。headers是解决requests请求反爬的方法之一。 headers中有很多内容,常用的是user-agent 和 host。
5)cookies
cookies参数为字典格式的数据或CookieJar
什么是cookie?
当用户通过浏览器首次访问一个域名时,访问的web服务器会给客户端发送数据,这些数据就是cookie,它是为了辨别用户身份而储存在用户本地终端上的数据。cookie大部分都是加密的,cookie存在于缓存中或者硬盘中,在硬盘中的是一些文本文件,当访问该网站时,就会读取对应的网站的cookie信息。一般来说,一旦将cookie保存在计算机上,则只有创建该cookie的网站才能读取它。
6)auth
身份验证。将用户名和密码以元组形式传递给auth参数时,rqeuests 将使用HTTP的认证功能来应用凭据。
7)files
传输文件。支持在一个请求中发送多个文件。
8)timeout
用于解决请求超时的问题。以秒为单位限制请求时间,如果服务器在设定的请求时间内没有应答,将引发一个异常。
9)proxies
字典类型,设定访问代理服务器,可以增加登陆认证。
10)allow_redirects
重定向开关:True / False。默认为True,允许重定向;False禁止重定向。
什么是重定向?
11)stream
获取内容立即下载开关:True / False,默认为True。
12)verify
请求验证SSL证书开关:True / False,默认为True。
13)cert
本地SSL证书路径。用于指定一个本地有效安全证书作为客户端证书。
响应对象的5种属性
① r.status_code
HTTP请求的返回状态,200为正常,404为错误。
② r.raw
HTTP响应内容的原始形式。
③ r.text
HTTP响应内容的字符串形式,即url对应的页面内容。获取文本一般使用 r.text。
④ r.content
HTTP响应内容的字节形式(二进制形式 )。获取图片或文件一般使用 r.content。
⑤ r.encoding
HTTP响应正文的编码,它的值可能是从HTTP响应头部或正文中解析出来的。
当解析的编码方式不准确时,可以手动指定一种编码方式。如,r.encoding = ' utf-8 ' 。
get 和 post 请求方式的区别
扩展知识:HTTP
HTTP(Hypertext Transfer Protocol),超文本传输协议,是一种建立在TCP上的无状态连接,整个基本的工作流程是客户端发送一个请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后开始处理请求,并根据请求做出相应的动作访问服务器资源,最后把响应结果返回给客户端。
HTTP协议采用URL作为定位网络资源的标识。
------------------- End -------------------
https://mp.weixin.qq.com/s/lkNrkMetcAnz68hR6N90fw