目录
response.text 和response.content的区别
一、requests库的基本使用
1、requests模块下载
requests模块作用:发送http请求,获取响应数据
- requests模块是第三方模块,需要安装:
- 输入安装命令:在python的终端输入pip install requests (按回车键进行安装)
2、requests的基本使用
-
使用基本步骤
- 代码演示
- 修改代码,指定解码方式为:utf-8
- 运行结果
-
response.text 和response.content的区别
response.text 类型:str 解码类型, requests模块自动根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码。
response.content 类型:bytes 解码类型,没有指定。
- 代码演示
- 修改代码:在response.content后加上“.decode()”,对获取到的数据以“utf-8”进行编码。
二、常用的属性和方法
1、几种常用的属性和方法
- response.url:响应的url;有时候响应的url和请求的url并不一致
- response.status_code: 响应状态码
- response.request.headers: 响应对应的请求头
- response.headers: 响应头
- response.request._cookies: 响应对应请求的cookie;返回cookieJar类型
- response.cookies: 响应的cookie(经过了set-cookie动作;返回cookieJar类型)
2、代码演示
-
演示:response.url
-
演示:response.status_code
-
演示:response.request.headers
-
演示:response.headers
-
演示:response.request._cookies
-
演示:response.cookies
三、headers请求
一般用法:requests.get(url, headers=headers)
headers参数接收字典形式的请求头,请求头字段名作为key,字段对应的值作为value
注意:
添加User-Agent的目的是为了让服务器认为是浏览器在发送请求,而不是爬虫程序在发送请求。
四、发送带参数params 的请求
1、参数params的基本使用
通过params携带参数字典:
- 构建请求参数字典
- 向接口发送请求的时候带上参数字典,参数字典设置给params
2、举例:网页搜索
通过携带params参数向网页发送指定查询内容的请求
- 发现每次搜索结束的浏览器的网址url有一个共同点:
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=
不同之处就在参数“wd=”后的值,第一张图的结果:“wd=python”,第二张图的结果:“wd=java”,其值正是我们要查询的值。
- 于是用python模拟浏览器的搜索引擎,获取网页源码。代码实现如下: