活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好的人…
今天学习的是requests这个http模块,Python 内置了 requests 模块,该模块主要用来发 送 HTTP 请求,requests 模块比urlib模块更简洁。
安装模块
首先进入终端,输入 pip install requests ,进行模块的安装,如果显示错误信息,在排除输入错误的情况下,进行安装pip,按常理来讲,目前python较新的大部分版本都是自带pip,但也不排除某些牛马情况(悲)
模块常见属性及用法
代码语言:javascript复制发送get请求,参数:url,headers,params,proxies,timeout,verify等,返回一个response对象。 requests.get() #发送post请求,参数:url,headers,data,proxies,timeout,verify等,返回一个response对象。
requests.post() #将字典对象转换成cookiejar对象 requests.utils.cookiejar_from_dict({'name': 'value'}) #将cookiejar对象转成字典对象 requests.dict_from_cookiejar(response.cookies) #返回response对象响应体的文本内容。 response.text #返回response对象响应体的二进制数据。 response.content #设置response对象响应体的编码格式,作用于requests.text response.encoding='utf8' #将返回的json数据直接转成dict response.json() #返回响应对象中的所有cookie对象 response.cookies #返回一个requests对象,使用该对象可以对请求进行状态保持。 req = requests.session()
requests.get(‘https://github.com/timeline.json’) # GET请求 requests.post(“http://httpbin.org/post”) # POST请求 requests.put(“http://httpbin.org/put”) # PUT请求 requests.delete(“http://httpbin.org/delete”) # DELETE请求 requests.head(“http://httpbin.org/get”) # HEAD请求 requests.options(“http://httpbin.org/get” ) # OPTIONS请求
响应的内容
响应内容 | 意义 |
---|---|
r.encoding | 获取当前的编码 |
r.encoding = ‘utf-8’ | 设置编码 |
r.text | 以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。 |
r.content | 以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。 |
r.headers | 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None |
r.status_code | 响应状态码 |
r.ok | 查看r.ok的布尔值便可以知道是否登陆成功 |
r.json() | Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常 |
r.raise_for_status() | 失败请求(非200响应)抛出异常 |
r.requests.headers | 返回发送到服务器的头信息 |
r.cookies | 返回cookie |
r.history | 返回重定向信息,当然可以在请求是加上allow_redirects = false 阻止重定向 |
简单代码实现
此处是通过urlib实现爬取百度
此处是使用requests模块进行爬取百度