python requests模块

本文详细介绍requests模块的安装及使用,包括GET和POST请求方法、添加代理、处理cookies和session、解决SSL证书问题。通过实例演示如何发送HTTP请求,解析响应数据。

安装

  • cmd命令行里安装
    • pip install requests
  • 开发者工具里安装

常用方法

  • requests.get(url, params=None, **kwargs):以get的方式请求url,如果有参数则在后边添加对应参数
    • 代码示例
      import requests
      
      url = 'https://www.baidu.com/s?'
      headers = {
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
      # 保存搜索内容
      wd = {'wd': '你好'}
      # 以get方式请求响应
      response = requests.get(url, params=wd, headers=headers)
      print(response.text)
      
      
      以百度搜索为例,将我们要搜索的“你好”参数,定义一个字典,然后传给params
  • requests.post(url, data=None, json=None, **kwargs):这个请求方式与get方式不同,所传参数都隐藏在Form Data表单里,所以当我们传参时,需要定义一个字典,然后赋值给data
    • 代码示例
      import requests
      import json
      
      content = input('请输入要翻译的内容:')
      # 翻译地址
      request_url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
      # data参数
      data = {'i': content,
              'from': 'AUTO',
              'to': 'AUTO',
              'smartresult': 'dict',
              'client': 'fanyideskweb',
              'salt': '15944508027607',
              'sign': '598c09b218f668874be4524f19e0be37',
              'ts': '1594450802760',
              'bv': '02a6ad4308a3443b3732d855273259bf',
              'doctype': 'json',
              'version': '2.1',
              'keyfrom': 'fanyi.web',
              'action': 'FY_BY_REALTlME',
              }
      # headers参数
      headers = {
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
      
      # 以post方式请求响应
      response = requests.post(request_url, data, headers=headers)
      # 获取内容
      html = response.text
      # 将json字符串转为字典
      html = json.loads(html)
      print('翻译结果:', html['translateResult'][0][0]['tgt'])
      
      
  • response.text: 返回unicode格式的数据(str)
  • response.content: 返回字节流数据(二进制)
    • 注意response.content.decode('utf-8') 手动进行解码,response.text就是通过它解码而来的
  • response.url:返回url
  • response.encode() = ‘编码’:为所得内容编码

requests添加代理

使用requests添加代理只需要在请求方法中(get/post)传递proxies参数就可以了
代码示例
如果是http协议,则先定义字典
proxy = {'http': '111.38.91.99:8060'}
否则是https协议
proxy = {'https': '111.38.91.99:8060'}
然后进行传参

url = xxxxx
response = requests.get(url, proxies=proxy)
response = requests.post(url, proxies=proxy)

cookie

cookie :通过在客户端记录的信息确定用户身份
HTTP是⼀种无连接协议,客户端和服务器交互仅仅限于请求/响应过程,结束后断开,下⼀次请求时,服务器会认为是⼀个新的客户端,为了维护他们之间的连接, 让服务器知道这是前⼀个用户发起的请求,必须在一个地方保存客户端信息。

例如我们在访问知乎主页的时候,如果没有加入cookie参数,那么就会跳转到登陆页面,如果传进cookie参数,则会跳到知乎首页(此时是已登录状态)

session

session :通过在服务端记录的信息确定用户身份 这⾥这个session就是⼀个指的是会话

处理不信任的SSL证书

什么是SSL证书?

  • SSL证书是数字证书的⼀种,类似于驾驶证、护照和营业执照的电⼦副本。 因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协 议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能

处理不信任证书
如果遇到有不信任的证书这种情况,我们是获取不到内容的,想要获取内容,应在请求响应时将verity赋值为False即可获取网页内容
例如requests.get(url,verity=False)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈_明勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值