首页 » PHP教程 » phprequeststimeout技巧_请求模块requests库基本运用

phprequeststimeout技巧_请求模块requests库基本运用

访客 2024-12-03 0

扫一扫用手机浏览

文章目录 [+]

一、安装

首先,你须要安装 requests 库。
如果你还没有安装,可以利用以下命令通过 pip 安装:

pip install requests二、基本用法

1. 发送 GET 要求

phprequeststimeout技巧_请求模块requests库基本运用

import requests # 发送 GET 要求 response = requests.get('https://api.example.com/data') # 获取相应状态码 print(response.status_code) # 获取相应内容(文本格式) print(response.text) # 获取相应内容(JSON 格式,如果做事器返回的是 JSON 数据) print(response.json())

2. 发送 POST 要求

import requests # 定义要发送的数据 data = { 'key1': 'value1', 'key2': 'value2' } # 发送 POST 要求 response = requests.post('https://api.example.com/submit', data=data) # 获取相应状态码 print(response.status_code) # 获取相应内容 print(response.text)

3. 发送带有要求头的要求

import requests # 定义要求头 headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer your_token_here' } # 发送 GET 要求并附带要求头 response = requests.get('https://api.example.com/protected', headers=headers) # 获取相应内容 print(response.text)

4. 发送带有查询参数的要求

import requests # 定义查询参数 params = { 'search': 'keyword', 'sort': 'asc' } # 发送 GET 要求并附带查询参数 response = requests.get('https://api.example.com/search', params=params) # 获取相应内容 print(response.text)

5. 发送带有 JSON 数据的 POST 要求

import requests # 定义 JSON 数据 json_data = { 'name': 'John Doe', 'age': 30 } # 发送 POST 要求并附带 JSON 数据 response = requests.post('https://api.example.com/users', json=json_data) # 获取相应内容 print(response.text)

6. 处理非常

import requests try: response = requests.get('https://api.example.com/data') response.raise_for_status() # 如果相应状态码不是 200,则抛出 HTTPError 非常 print(response.text) except requests.exceptions.HTTPError as errh: print("Http Error:", errh) except requests.exceptions.ConnectionError as errc: print("Error Connecting:", errc) except requests.exceptions.Timeout as errt: print("Timeout Error:", errt) except requests.exceptions.RequestException as err: print("OOps: Something Else", err)

7.额外功能

会话工具:利用 requests.Session() 可以创建会话工具,用于跨要求保持某些参数(如 cookies 和 headers)。
超时设置:可以在要求中设置超时时间,如 requests.get('url', timeout=5)。
代理设置:可以通过 proxies 参数设置代理,如 proxies={'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080'}。
三、requests模块常用函数先容

requests模块是Python中一个非常盛行的HTTP库,用于发送HTTP要求并获取相应。
它供应了简洁易用的API,使得发送HTTP要求变得大略快捷。
以下是对requests模块中一些常用函数的先容:

1. requests.request()

功能:布局一个要求,用以支撑其他方法的根本方法。
参数:method:HTTP方法(如GET、POST等)。
url:要求的URL。
params:可选,URL的额外参数,字典或字节流格式。
其他kwargs参数:用于掌握访问的各种参数,如headers(要求头)、cookies(Cookie信息)、auth(认证信息)、timeout(超时时间)等。

2. requests.get()

功能:发送GET要求,获取HTML网页的紧张方法。
参数:url:要求的URL。
params:可选,URL的额外参数,字典或字节流格式。
其他kwargs参数:如headers、cookies、timeout等。

3. requests.post()

功能:发送POST要求,向HTML网页提交数据。
参数:url:要求的URL。
data:可选,表单数据,字典、字节流或文件工具格式。
json:可选,JSON格式的数据,自动设置Content-Type: application/json。
其他kwargs参数:如headers、cookies、timeout等。

4. requests.put()

功能:发送PUT要求,向HTML网页提交局部修正要求。
参数:url:要求的URL。
data:可选,要提交的数据,字典、字节流或文件工具格式。
其他kwargs参数:如headers、cookies等。

5. requests.delete()

功能:发送DELETE要求,向HTML页面提交删除要求。
参数:url:要求的URL。
其他kwargs参数:如headers、cookies等。

6. requests.head()

功能:发送HEAD要求,获取HTML网页头信息。
参数:url:要求的URL。
其他kwargs参数:如headers、cookies等。

7. requests.options()

功能:发送OPTIONS要求,用于描述目标资源的通信选项。
参数:url:要求的URL。
其他kwargs参数:如headers、cookies等。

8. requests.session()

功能:创建一个会话工具,用于在多个要求中共享参数(如Cookie)。

9. Response工具属性

当发送要求后,requests库会返回一个Response工具,该工具包含了很多有用的属性和方法,用于获取相应的详细信息。
例如:

status_code:HTTP要求的返回状态码(如200表示成功,404表示未找到)。
text:HTTP相应内容的字符串形式。
content:HTTP相应内容的二进制形式。
headers:返回相应头信息,是一个字典类型。
cookies:返回相应的Cookie信息,是一个字典类型。
json():如果相应内容是JSON格式,可以利用此方法将其解析为Python字典。
encoding:返回相应内容的编码格式。
url:返回要求的URL地址。
history:返回要求历史,是一个列表类型,个中每个元素都是一个Response工具(用于重定向跟踪)。

10. 非常处理

requests库还供应了一套非常处理机制,用于处理在发送要求过程中可能涌现的各种非常。
例如:

requests.ConnectionError:网络连接缺点非常(如谢绝连接等)。
requests.HTTPError:HTTP缺点非常(如4XX或5XX状态码)。
requests.URLRequired:URL缺失落非常。
requests.TooManyRedirects:超过最大重定向次数非常。
requests.ConnectTimeout:连接远程做事器超时非常。
requests.Timeout:要求超时非常(包括连接超时和读取超时)。

总之,requests模块是一个功能强大且易于利用的HTTP库,它供应了丰富的函数和属性来知足各种HTTP要求的需求。
通过学习和节制这些函数和属性的用法,可以更加高效地进行网络要乞降数据获取。

相关文章

phpini段技巧_php设备文件详解phpini

; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置变动可以反响出相称的变革, ; 在利用新的PHP...

PHP教程 2024-12-09 阅读0 评论0