request基本使用及各种请求方式参数的示例

 更新时间:2022年04月12日 15:57:55   作者:Jeff的技术栈  
这篇文章主要为大家介绍了request的基本使用及各种请求方式参数示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪

各种请求方式

pip3 install requests
>>> import requests
>>> r = requests.get('https://www.cnblogs.com')
>>> r = requests.post('https://www.cnblogs.com', data = {'key':'value'})
>>> r = requests.put('https://www.cnblogs.com', data = {'key':'value'})
>>> r = requests.delete('https://www.cnblogs.com')
>>> r = requests.head('https://www.cnblogs.com')
>>> r = requests.options('https://www.cnblogs.com')

request各种参数

参数说明
params字典或字节序列,作为参数增加到url中
data字典,字节序列或文件对象,作为request的内容
jsonJSON格式的数据,作为request的内容
headers字典,HTTP定制头
cookies字典或CookieJar, request中的cookie
auth元组,支持HTTp认证功能
files字典类型,传输文件
timeout设定超时时间,秒为单位
proxies字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects重定向开关,默认为True
stream获取内容立即下载开关,默认为True
verify认证SSL证书开关,默认为True
cert本地SSL证书路径

request基本使用

import requests
response = requests.get('https://www.cnblogs.com/kermitjam/')
print(response.text)
print(respone.text)  # 响应体转成str
print(respone.content)  # 响应体二进制(图片,视频)
print(respone.status_code)  # 响应状态码
print(respone.headers)  # 响应头
print(respone.cookies)  # 服务端返回的cookie
print(respone.cookies.get_dict())  # 转成字典
print(respone.cookies.items())
print(respone.url)  # 当次请求的地址
print(respone.history)  # 如果有重定向,放到一个列表中.查看上一次请求从哪里来。(图片防盗链)
print(respone.encoding)  # 编码方式
print(respone.iter_content())  # 视频,图片迭代取值
content-length   # 查看下载前文件大小
response.iter_content() # 视频,图片迭代取值
with open("a.mp4",'wb') as f:
    for line in response.iter_content():
        f.write(line)

get请求携带参数

# 方式一:会转码,不推荐
response = requests.get('https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3')
# 方式二:推荐
response = requests.get('https://www.baidu.com/',params={'name':'美女','age':18})

get请求携带headers头

respone = requests.get('http://127.0.0.1:8000/',params={'name':'美女','age':18},
                   headers={
                       # 标志,什么东西发出的请求,浏览器信息,django框架,从哪取?(meta)
                       'User-Agent': 'request',
                       # 上一个页面的地址,图片防盗链
                       'Referer': 'xxx'
                   })
print(respone.status_code)

get请求携带cookie

带cookie,随机字符串(用户信息:也代表session),不管后台用的token认证,还是session认证

一旦登陆了,带着cookie发送请求,表示登陆了(下单,12306买票,评论)

# 第一种方式
ret = requests.get('http://127.0.0.1:8000/',params={'name':'美女','age':18},
                   headers={
                       'cookie': 'key3=value;key2=value',
                   })

# 第二种方式
ret = requests.get('http://127.0.0.1:8000/',params={'name':'美女','age':18},
                   cookies={"islogin":"xxx"})
print(ret.status_code)

post请求携带数据(注册、登录)

# data:urlencoded编码
ret = requests.post('http://127.0.0.1:8000/', data={'name': "jeff", 'age': 18})
# data:json编码
import json
data = json.dumps({'name': "jeff", 'age': 18})
ret = requests.post('http://127.0.0.1:8000/', json=data)
print(ret)
# 注意:编码格式是请求头中带的,所以可以手动修改,在headers中改

session对象

# session对象
session=requests.session()
# 跟requests.get/post用起来完全一样,但是它处理了cookie
# 假设是一个登陆,并且成功
res = session.post('http://127.0.0.1:8000/')
# # 再向该网站发请求,就是登陆状态,不需要手动携带cookie
res = session.get("http://127.0.0.1:8000/")
print(res)

乱码问题

# 加载回来的页面,打印出来,乱码(我们用的是utf8编码),如果网站用gbk,
ret = requests.get('http://127.0.0.1:8000/')
ret.encoding='gbk'  # 修改编码
print(ret.apparent_encoding)  # 当前页面的编码
# ret.encoding = ret.apparent_encoding
print(ret.encoding)
print(ret.apparent_encoding)

解析json数据

# 返回数据,有可能是json格式,有可能是html格式
ret=requests.get('http://127.0.0.1:8000/')
# print(type(ret.text))
# print(ret.text)
a=ret.json()
print(a['name'])
print(type(a))

使用代理

代理简单解释:

代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。
#高匿:服务端,根本不知道我是谁
#普通:服务端是能够知道我的ip的
#http请求头中:X-Forwarded-For:代理的过程

爬虫使用正向代理好处:

1.突破频率限制。做个代理池,每次请求都是不同的Ip,服务器认为是不同的用户

2.不会封自己的ip。

正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

ret = requests.get('https://www.pearvideo.com/', proxies={'http': '47.115.54.89'})
print(type(ret.text))
print(ret.text)

上传文件

# 爬虫用的比较少,后台写服务
file = {'myfile': open("1.txt", 'rb')}
ret = requests.post('http://127.0.0.1:8000/', files=file)
print(ret.content)

以上就是request基本使用及各种请求方式参数的示例的详细内容,更多关于request使用及请求方式参数的资料请关注脚本之家其它相关文章!

相关文章

  • Python邮箱API发送邮件的方法和步骤

    Python邮箱API发送邮件的方法和步骤

    Python是一种功能强大的编程语言,可以用来发送电子邮件,使用Python发送邮件可以通过邮箱API来实现,aoksend将介绍使用Python邮箱API发送邮件的方法和步骤,需要的朋友可以参考下
    2024-04-04
  • flask解析海康摄像头视频的使用

    flask解析海康摄像头视频的使用

    本文主要介绍了flask解析海康摄像头视频的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python 音频和视频合并自动裁剪

    python 音频和视频合并自动裁剪

    本文主要介绍了python 音频和视频合并自动裁剪,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Python调用百度AI实现身份证识别

    Python调用百度AI实现身份证识别

    这篇文章主要介绍了Python通过调用百度AI的文字识别功能实现对身份证进行识别,代码具有一定的学习价值,感兴趣的朋友一起来看看效果吧
    2021-12-12
  • 使用Pytest.main()运行时参数不生效问题解决

    使用Pytest.main()运行时参数不生效问题解决

    本文主要介绍了使用Pytest.main()运行时参数不生效问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python自然语言处理之snownlp模块介绍、安装与常见操作实战案例

    Python自然语言处理之snownlp模块介绍、安装与常见操作实战案例

    SnowNLP是一个针对中文文本处理的Python库,提供分词、词性标注、情感分析等功能,它基于自然语言处理技术,能够处理unicode编码的文本,这篇文章主要介绍了Python自然语言处理之snownlp模块介绍、安装与常见操作的相关资料,需要的朋友可以参考下
    2024-11-11
  • python爬虫正则表达式之处理换行符

    python爬虫正则表达式之处理换行符

    本文是脚本之家小编刚学习python记录的关于python爬虫正则表达式之处理换行符的相关资料,需要的朋友可以参考下
    2018-06-06
  • python轻量级orm框架 peewee常用功能速查详情

    python轻量级orm框架 peewee常用功能速查详情

    Peewee是一种简单而小的ORM。它有很少的(但富有表现力的)概念,使它易于学习和直观的使用,感兴趣的朋友可以参考下面文章的具体内容
    2021-09-09
  • Python中如何实现MOOC扫码登录

    Python中如何实现MOOC扫码登录

    这篇文章主要介绍了Python中如何实现MOOC扫码登录,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • python字符串定义的三种方式

    python字符串定义的三种方式

    在Python中,字符串是一个非常重要的数据类型,可用来存储和操作文本数据,本文主要介绍了python字符串定义的三种方式,具有一定的参考价值,感兴趣的可以了解一下
    2023-05-05

最新评论