Python requests.get详解
介绍
在Python中,requests模块是一个非常常用的库,用于发送HTTP请求。其中的get
方法是requests模块中最常用的方法之一,用于发送GET请求并获取服务器的响应。本文将详细介绍get
方法的使用和注意事项。
安装
要使用requests模块,首先需要安装该模块。可以使用pip包管理器进行安装,命令如下:
pip install requests
导入模块
安装完成后,可以在Python脚本中导入requests模块,使用import
关键字:
import requests
发送GET请求
使用requests模块的get
方法可以发送GET请求,其基本用法如下:
response = requests.get(url, params=None, **kwargs)
其中,参数说明如下:
url
: 要发送请求的URL地址,可以是字符串或url
对象。params
: 可选参数,字典或字节流作为请求参数发送给服务器。**kwargs
: 可选参数,关键字参数。用于控制请求的行为,例如设置请求头、超时等。
下面是一个发送GET请求的例子:
import requests
response = requests.get('https://api.github.com/repos/requests/requests')
print(response.status_code) # 获取响应状态码
print(response.text) # 获取响应内容
运行以上代码,会发送一个GET请求到GitHub的API接口,获取requests库的详细信息。然后通过status_code
属性获取响应的状态码,通过text
属性获取响应内容。
GET请求的参数
通过get
方法发送GET请求时,可以通过params
参数传递请求参数。请求参数是作为URL的一部分传递给服务器的。下面是一个例子:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://httpbin.org/get', params=payload)
print(response.url) # 输出完整的URL地址
print(response.json()) # 将响应内容解析为JSON格式
运行以上代码,会发送一个GET请求到https://httpbin.org/get
URL,并传递了两个请求参数key1
和key2
。通过url
属性可以查看完整的URL地址,通过json
方法可以将响应内容解析为JSON格式。
响应对象属性和方法
发送GET请求后,会得到一个响应对象。该响应对象包含了服务器的响应信息。下面是一些常用的响应对象的属性和方法:
属性
status_code
:响应的状态码(例如:200表示成功)。text
:响应的内容(以文本形式返回)。json
:将响应内容解析为JSON格式。headers
:响应头的键值对。url
:响应的URL地址。
方法
iter_content(chunk_size=None, decode_unicode=None)
:以字节形式迭代响应内容。iter_lines(chunk_size=512, decode_unicode=None)
:以行的形式迭代响应内容。
下面是一个例子,展示如何使用响应对象的属性和方法:
import requests
response = requests.get('https://httpbin.org/get')
print(response.status_code) # 获取响应状态码
print(response.text) # 获取响应内容
json_response = response.json() # 将响应内容解析为JSON格式
print(json_response['headers']) # 输出响应头的键值对
for line in response.iter_lines(): # 以行的形式迭代响应内容
print(line.decode('utf-8')) # 打印每一行
异常处理
在使用requests模块发送请求时,可能会遇到各种异常情况,例如网络请求超时、服务器返回错误等。为了保证程序的稳定性,需要对这些异常情况进行适当的处理。
下面是一个例子,展示如何处理请求异常:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/get', timeout=0.1)
response.raise_for_status() # 如果响应状态码不是200,则抛出一个异常
except RequestException as e:
print('请求异常: ', e)
以上代码中,使用try-except
语句捕获了RequestException
异常,然后打印了异常信息。如果出现网络请求超时或其他异常情况,就会进入except
语句块。
总结
本文介绍了Python中requests模块的get
方法的详细用法和注意事项。通过该方法可以发送GET请求并获取服务器的响应。我们还介绍了如何传递请求参数、如何处理响应对象以及如何处理请求异常。掌握了这些知识,可以更好地利用requests模块进行Web开发和数据爬取等工作。