浅析python爬虫(下)

2022-11-21 15:29:33 浏览数 (1)

活动地址: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模块进行爬取百度

0 人点赞