一、安装
首先,你须要安装 requests 库。如果你还没有安装,可以利用以下命令通过 pip 安装:
pip install requests
二、基本用法
1. 发送 GET 要求
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要求的需求。通过学习和节制这些函数和属性的用法,可以更加高效地进行网络要乞降数据获取。