python3requests详解

  • Post category:other

Python3中requests库详解

requests是Python中一个常用的HTTP库,它可以方便地发送HTTP请求和处理HTTP响应。本攻略将详细介绍requests库的使用方法,包括发送GET和POST请求、设置请求头、处理响应等内容。

安装requests库

在使用requests库之前,需要先安装它。可以使用以下命令在终端中安装:

pip install requests

发送GET请求

使用requests库发送GET请求非常简单,只需要调用requests.get()函数并传入URL即可。以下是一个发送GET请求的示例:

import requests

url = 'https://www.baidu.com'
response = requests.get(url)
print(response.text)

在上面的代码中,我们使用requests.get()函数发送一个GET请求到百度首页,并使用print()函数输出响应内容。

发送POST请求

使用requests库发送POST请求也非常简单,只需要调用requests.post()函数并传入URL和请求参数即可。以下是一个发送POST请求的示例:

import requests

url = 'https://httpbin.org/post'
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post(url, data=data)
print(response.text)

在上面的代码中,我们使用requests.post()函数发送一个POST请求到https://httpbin.org/post,并传入请求参数data。然后,我们使用print()函数输出响应内容。

设置请求头

有时候,我们需要设置请求头来模拟浏览器发送请求。可以使用headers参数来设置请求头。以下是一个设置请求头的示例:

import requests

url = 'https://www.baidu.com'
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.3'}
response = requests.get(url, headers=headers)
print(response.text)

在上面的代码中,我们使用headers参数设置了请求头模拟了Chrome浏览器发送请求。

处理响应

requests库可以方便地处理HTTP响应。以下是一些常用的响应处理方法:

  • response.text:获取响应内容。
  • response.status_code:获取响应状态码。
  • response.headers:获取响应头。
  • response.json():将响应内容解析为JSON格式。

以下是一个处理响应的示例:

import requests

url = 'https://httpbin.org/get'
response = requests.get(url)
print(response.status_code)
print(response.headers)
print(response.json())

在上面的代码中,我们使用response.status_code获取响应状态码,使用response.headers获取响应头,使用response.json()将响应内容解析为JSON格式。

示例说明

以下是两个关于requests库的示例说明:

示例1:使用requests库下载图片

import requests

url = 'https://www.python.org/static/community_logos/python-logo-master-v3-TM.png'
response = requests.get(url)
with open('python-logo.png', 'wb') as f:
    f.write(response.content)

在上面的代码中,我们使用requests.get()函数下载Python官网的logo,并使用with open()语句将响应内容写入文件中。

示例2:使用requests库爬取网页内容

import requests
from bs4 import BeautifulSoup

url = 'httpswww.baidu.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)

在上面的代码中,我们使用requests.get()函数获取百度首页的HTML内容,并使用BeautifulSoup库解析HTML内容。然后,我们使用soup.title.string获取HTML标题。