python中request库的使用

Python中的requests库是一个用于HTTP请求的Python第三方库。它使得发送HTTP请求变得更加容易,同时也包含了许多高级功能,如Cookie和会话保持、身份验证、代理等。

以下是一些requests库的常用功能和使用案例:

  1. 发送GET请求
import requests

response = requests.get("https://www.example.com")
print(response.status_code)
print(response.text)

说明:

  • 使用requests库发送GET请求,并将响应保存在response对象中
  • 可以使用response对象的status_code属性获取响应的状态码,使用text属性获取响应的文本内容
  1. 发送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属性获取响应的文本内容
  1. 添加请求头
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属性获取响应的文本内容
  1. 处理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信息添加到请求中
  1. 使用会话保持
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请求的详细使用案例:

  1. 发送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数据,并打印用户名和所在地;否则打印错误信息
  1. 发送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,如果是,则打印登录成功信息;否则打印登录失败信息
  1. 添加请求头
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,如果是,则打印响应的文本内容;否则打印错误信息
  1. 处理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,如果是,则打印登录成功信息;否则打印登录失败信息
  1. 使用会话保持
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请求变得非常容易和高效。

发表评论

后才能评论