requests模块
response包含的内容有:
-
1.状态码
response.status_code -
2.响应头
response.headers[‘Cookie’] -
3.响应正文
- 1.获取字符串类型的响应正文
response.test - 2.获取bytes类型的响应正文
response.content - 3.响应正文字符串编码
response.encoding
- 1.获取字符串类型的响应正文
-
4.响应内容的乱码问题
当我们用response.test获取字符串的响应正文的时候,有时候会出现乱码
原因是response.encoding这个字段默认指定编码有误
解决办法是你手动指定
response.encoding = ‘utf-8’
另一种方法:
response.content.decode(‘utf-8’)
requests模块get请求
1.导包
import requests
2.确定请求的url
base_url = ‘’
3.发送请求,获取响应
response = requests.get(
url = base_url 请求的url
headers = {} 请求头
params = {} 请求参数字典
)
get请求的项目类别
- 没有请求参数的,只需要添加请求头,封装
User-Agent这个请求头就行了 - 带请求参数的,设置请求参数字典:
params = {
字典的内容就是chrome里面query string params里面的内容
} - 分页:
1.先找到分页的规律,一般是通过params参数中的其中一个参数
2.找到这个参数每一页的规律
3.用for循环来请求每一页的内容
requests模块的post请求
response = requests.post(
url
headers = {}
data = {}
)
post请求一般得到响应内容是json数据
处理json数据用到的模块就是json模块
json数据本质上就是字符串
response.json():可以直接将获取到的json字符串转化成python的list或dict
处理post请求的请求参数怎么解决换了请求参数就请求不到的问题?
也就是post请求的内容主要解决请求参数,就可以获取数据了
- 1.比对:比对data字典,哪些参数是不一样的
- 2.想办法找到这些参数的生成原理
一些参数可以存放:
1.页面中:都是固定写死的
2.js中动态生成参数
3.可以通过ajax来获取一些