python中request库的使用
Python中的requests库是一个用于HTTP请求的Python第三方库。它使得发送HTTP请求变得更加容易,同时也包含了许多高级功能,如Cookie和会话保持、身份验证、代理等。
以下是一些requests库的常用功能和使用案例:
- 发送GET请求
import requests
response = requests.get("https://www.example.com")
print(response.status_code)
print(response.text)
说明:
- 使用requests库发送GET请求,并将响应保存在response对象中
- 可以使用response对象的status_code属性获取响应的状态码,使用text属性获取响应的文本内容
- 发送POST请求
import requests
data = {'username': 'john', 'password': 'secret'}
response = requests.post("https://www.example.com/login", data=data)
print(response.status_code)
print(response.text)
说明:
- 使用requests库发送POST请求,并将表单数据保存在data字典中
- 可以使用response对象的status_code属性获取响应的状态码,使用text属性获取响应的文本内容
- 添加请求头
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get("https://www.example.com", headers=headers)
print(response.status_code)
print(response.text)
说明:
- 使用requests库发送GET请求,并添加请求头headers
- 可以使用response对象的status_code属性获取响应的状态码,使用text属性获取响应的文本内容
- 处理Cookie
import requests
response = requests.get("https://www.example.com")
cookies = response.cookies
print(cookies)
response = requests.get("https://www.example.com", cookies=cookies)
print(response.status_code)
print(response.text)
说明:
- 使用requests库发送GET请求,并获取响应中的Cookie信息
- 将Cookie信息保存在cookies变量中,并使用requests库发送另一个GET请求时,将Cookie信息添加到请求中
- 使用会话保持
import requests
session = requests.Session()
data = {'username': 'john', 'password': 'secret'}
session.post("https://www.example.com/login", data=data)
response = session.get("https://www.example.com/profile")
print(response.status_code)
print(response.text)
说明:
- 创建一个requests的会话对象session
- 在会话对象中使用post方法发送登录请求,并将登录状态保持在会话中
- 使用get方法访问需要登录才能访问的页面时,会话对象会自动带上之前的登录状态
以上是一些requests库的常用功能和使用案例,requests库提供了许多方便的功能,使得发送HTTP请求变得非常容易和高效。
以下是一些使用requests库进行HTTP请求的详细使用案例:
- 发送GET请求
import requests
response = requests.get("https://api.github.com/users/octocat")
if response.status_code == 200:
data = response.json()
print(f"Name: {data['name']}")
print(f"Location: {data['location']}")
else:
print("Failed to fetch user data.")
说明:
- 使用requests库发送GET请求,获取GitHub上octocat用户的公共数据
- 检查响应的状态码是否为200,如果是,则解析响应的JSON数据,并打印用户名和所在地;否则打印错误信息
- 发送POST请求
import requests
data = {'username': 'john', 'password': 'secret'}
response = requests.post("https://www.example.com/login", data=data)
if response.status_code == 200:
print("Login success.")
else:
print("Login failed.")
说明:
- 使用requests库发送POST请求,将表单数据保存在data字典中,并提交到指定的登录URL
- 检查响应的状态码是否为200,如果是,则打印登录成功信息;否则打印登录失败信息
- 添加请求头
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get("https://www.example.com", headers=headers)
if response.status_code == 200:
print(response.text)
else:
print("Failed to fetch website content.")
说明:
- 使用requests库发送GET请求,并添加请求头headers
- 检查响应的状态码是否为200,如果是,则打印响应的文本内容;否则打印错误信息
- 处理Cookie
import requests
response = requests.get("https://www.example.com/login")
cookies = response.cookies
data = {'username': 'john', 'password': 'secret'}
response = requests.post("https://www.example.com/login", data=data, cookies=cookies)
if response.status_code == 200:
print("Login success.")
else:
print("Login failed.")
说明:
- 使用requests库发送GET请求,获取登录页面,并获取响应中的Cookie信息
- 将Cookie信息保存在cookies变量中,并使用requests库发送POST请求时,将Cookie信息添加到请求中
- 检查响应的状态码是否为200,如果是,则打印登录成功信息;否则打印登录失败信息
- 使用会话保持
import requests
session = requests.Session()
data = {'username': 'john', 'password': 'secret'}
session.post("https://www.example.com/login", data=data)
response = session.get("https://www.example.com/profile")
if response.status_code == 200:
print(response.text)
else:
print("Failed to fetch profile page.")
说明:
- 创建一个requests的会话对象session
- 在会话对象中使用post方法发送登录请求,并将登录状态保持在会话中
- 使用get方法访问需要登录才能访问的页面时,会话对象会自动带上之前的登录状态
- 检查响应的状态码是否为200,如果是,则打印个人资料页面的内容;否则打印错误信息
以上是一些使用requests库进行HTTP请求的详细使用案例,requests库提供了许多方便的功能,使得发送HTTP请求变得非常容易和高效。
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。