requests模块:get请求、post请求

一、requests模块

(一)get请求

步骤:

  1. 导包
    import requests
  2. 确定请求的url
    base_url = ‘’
  3. 发送请求,获取响应
    reponse = requests.get(
    url = base_url,# 请求的url
    headers = {},# 请求头
    params = {},# 请求参数字典
    )
  4. response这个对象包含的内容都有以下几个:
    • 状态码:
      response.status_code
    • 响应头:
      response.headers[‘Cookie’]
    • 响应正文:
      • 获取字符串类型的响应正文
        response.text
      • 获取bytes类型的响应正文
        response.content
      • 响应正文字符串编码
        response.encoding
    • 响应内容的乱码问题:
      当我们用response.text获取字符串的响应正文的时候,有时候会出现乱码
      原因:response.encding字段默认指定编码有误
      解决方法:手动指定
      response.encoding = ‘utf-8’

      response.content.decode(‘utf-8’)
  5. get请求的项目类别:
    • 没有请求参数的,只需添加请求头,封装‘user-agent’请求头

    • 带请求参数的
      基础url是?之前包括?的内容
      设置请求参数字典:
      params = {
      字典的内容是Chrome里面query params里的内容
      }

    • 分页

      • 方法:
        1. 先找出分页的规律,一般通过params参数中的其中一个参数来控制
        2. 找到这个参数每一页的规律
        3. 用for循环来请求每一页的内容

(二)post请求

response = requests.post{
	url='',
	headers = {},
	data = {},#请求数据字典
}

post请求一般得到相应内容是json数据

处理json数据用到的模块就是json模块

json数据本质上就是字符串

json.dumps(python的list或者dict) # 返回值是json字符串
json.loads(json字符串) # 返回值是python的list或者dict

response.json() # 可以直接将获取到的json字符串转化成python的list或者dict

处理post请求的更换请求参数就请求不到的问题。

  1. 比对data字典,哪些参数不一样
  2. 找到参数的生成原理
    一些参数可以存放:
    • 页面中,都是固定写死
    • js中动态生成参数
    • 通过ajax获取一些参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值