首页 > 其他分享 >requests

requests

时间:2023-07-31 19:47:05浏览次数:33  
标签:请求 headers 数据 响应 requests 异常

requests库总结

1、requests库作用

2、get方法

3、post方法

4、requests库常见抛出异常


1、requests库作用



  • requests库是一个用于发送HTTP请求的Python库。它提供了一种简单而直观的方式来与Web服务进行交互,例如在爬取网页数据、访问API或进行HTTP通信等方面。使用requests库,你可以轻松地向服务器发送GET、POST、PUT、DELETE等各种类型的请求,并获取响应结果。

  • 主要功能包括:

    1、发送HTTP请求:使用requests库,你可以发送各种类型的HTTP请求,如GET、POST、PUT等,以及定制请求头、请求参数、文件上传等功能。

    2、处理响应结果:requests库能够处理服务器返回的响应结果,包括获取响应状态码、响应头、响应正文等信息。你可以根据需要对响应结果进行解析和处理。

    3、Session管理:requests库支持使用Session对象来管理会话,可以在多个请求之间保持会话状态,例如保存登录信息、设置Cookie等。

    4、身份认证:requests库提供了基本身份认证、摘要认证和OAuth等身份认证机制,可以轻松地在请求中添加身份凭证。

    5、SSL验证:requests库默认会验证HTTPS请求的SSL证书,你可以自定义验证方法或禁用SSL验证。

    6、文件上传和下载:requests库可以方便地处理文件的上传和下载,支持多种文件传输方式,如普通文件上传、分块上传、断点续传等。


2、get方法



  • 基本使用方法:

    import requests

    headers = {'User-Agent':'xxx'(用于伪装成浏览器)}

    res = requests.get('url',headers = headers)

    get方法获取网址中的内容并保存在res中


    print(res.text)



    GET 方法返回的数据类型没有固定规定,而是根据服务器端实际配置和所请求资源的内容来确定。通常,通过查看响应头部的 Content-Type 字段可以了解服务器返回的数据类型。

    通常有以下类型的数据:

    1、文本数据:服务器可以返回纯文本数据,如普通文本、HTML、XML、JSON 等。这些数据类型通常以字符串的形式返回。

    2、图像数据:当请求的资源是图像文件时,服务器可以返回图像数据,如JPEG、PNG、GIF 等格式。这些数据类型以二进制形式返回。

    3、二进制数据:有时,服务器可能会返回二进制数据,例如文件下载或媒体文件。这些数据以字节流的形式返回。

    4、文件数据:在某些情况下,服务器可能直接返回文件数据,并提供下载链接。这样的响应可能包含文件的元数据和字节流。


3、post方法



  • 基本使用方法:

    import requests

    url = "https://example.com/api"

    data =

    创建的字典即为要提交的数据


    headers = {"Content-Type": "application/json"}

    response = requests.post(url, json=data, headers=headers)

    获取的响应存在response中




    该例子使用post()方法发送请求,并将响应存储在response变量中。该方法接受两个参数:URL和数据。你可以通过传递一个字典或一个字符串作为数据来发送POST请求。
    除了data参数,post()方法还有其他一些可选参数,如headers、params、json等。这些参数可以用于设置请求头、查询字符串参数或发送JSON数据。




4、requests库常见抛出异常



  • ConnectionError :网络问题,如DNS查询失败,拒绝连接...
  • Response.raise_for_status()抛出一个HTTPError异常:404错误等
  • Requests抛出一个Timeout异常;请求超时
  • Requests抛出一个TooManayRedirects异常:请求超过设定的最大重定向次数



    为避免这些异常导致整个程序停止而需全部重新运行的情况,可以使用python的try-except语句,示例如下:

    import requests

    try:

    response = requests.get('https://example.com', timeout=5)

    # 处理响应数据

    print(response.text)

    except requests.exceptions.Timeout:

    # 请求超时异常处理

    print("请求超时,请稍后重试或检查网络连接。")

    except requests.exceptions.RequestException as e:

    # 其他请求异常处理

    print("请求发生错误:", e)




    通过将请求代码放置在try块中,可以捕获可能抛出的Timeout异常。然后,可以根据具体情况进行适当的处理,例如打印错误信息、重试请求或执行其他操作(即当出现对应异常时就会跳过try:下的语句而去执行except:下的语句)

标签:请求,headers,数据,响应,requests,异常
From: https://www.cnblogs.com/littlejazzcat/p/17594311.html

相关文章

  • p2:认识requests库的常用方法与实战
    二、全面认识requests库的常用方法requests是python第三方库安装命令方法如下:pipinstallrequestspython的默认的测试用来规则1、模块名必须以test_开头或_test结尾;2、类名必须以Test开头;3、测试用例名必须以test_开头#核心的六个方法#post、delete、put、get==......
  • python requests.session() 不使用session的cookie 自定义cookie
      req=requests.Request('GET',"https://xxxx.gif",headers=headers)#清空cookiesreq.cookies={}#发送请求session.send(req.prepare(),timeout=30,verify=Fa......
  • nginx的keepalive_requests参数
    在Nginx中,keepalive_requests指令用于控制与客户端和代理服务器之间keep-alive连接的请求次数。在HTTP配置中,它控制Nginx与客户端之间keep-alive连接的请求次数。在upstream配置中,它控制Nginx与上游服务器之间keep-alive连接的请求次数。以下是两种keepalive_r......
  • 爬虫基本工具:urllib丶requests丶selenium丶pytesseract
    urllib来实现cookie和ip代理1fromurllib.requestimportRequest,build_opener,urlopen2fromfake_useragentimportUserAgent3fromurllib.parseimporturlencode4fromurllib.requestimportHTTPCookieProcessor5fromhttp.cookiejarimportCookieJ......
  • python + requests + unittest 接口自动化进阶篇一
    前言关于接口headers中的Content-Type:Get请求的headers中没有Content-Type这个字段,Post的Content-Type有:application/x-www-form-urlencoded一般是文本表单用post传递数据;multipart/form-data用于文件上传,此时form的enctype属性必须指定为multipart/form-d......
  • python得Requests
    Python的Requests库介绍与使用1.引言在Python中,我们经常需要发送HTTP请求,以获取远程服务器上的数据或者与其进行交互。Python的Requests库是一个非常强大且易于使用的HTTP库,可以简化HTTP请求的发送过程。本文将介绍Requests库的基本用法和一些高级功能,帮助你快速上手使用Request......
  • 1、使用python+selenium+requests在百度批量下载图片
    importosimportreimporttimeimportrequestsfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByclasspicturesDowload():def__init__(self,insearch,savepath=os.path.dirname(__file__),timeout=10):self.insearch=i......
  • 08python离线安装requests需要安装的依赖库
    requests安装有依赖的包版本,如下:certifi[required:>=2017.4.17]#CA认证模块urllib3[required:!=1.25.0,!=1.25.1,<1.26,>=1.21.1’]#线程安全HTTP库idna[required:<2.9,>=2.5]#国际化域名解析模块chardet[required:❤️.1.0,>=3.0.2]#通用字符编码检测器模块......
  • requests.exceptions.ProxyError问题解决方法
    出现这个问题是因为你系统上在使用代理,然后你的代理又是规则匹配的。https://stackoverflow.com/questions/36906985/switch-off-proxy-in-requests-library3种解决方法:headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64;rv:109.0)Gecko/20100101Fi......
  • Python | requests库
    一、基本概念1、简介requests模块是python基于urllib,采用Apache2Licensed开源协议的HTTP库。它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。Requests的哲学是以PEP20的习语为中心开发的,所以它比urllib更加Pythoner。2、获取通过pip......