📜  Python -HTTP客户端(1)

📅  最后修改于: 2023-12-03 15:04:03.722000             🧑  作者: Mango

Python - HTTP客户端

在Python中,我们可以使用内置的 urllib 库或者第三方库 requests 来发送HTTP请求,实现客户端功能。

urllib库

使用urllib发送HTTP请求需要以下步骤:

  1. 导入urllib模块
  2. 构建请求对象
  3. 发送请求并获取响应
  4. 处理响应数据
导入urllib模块
import urllib.request
构建请求对象

在构建请求对象的过程中,需要先构建 Request 对象,设定请求的URL和请求头,在必要时也可以指定请求方法和请求体。

url = 'http://example.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'}
req = urllib.request.Request(url=url, headers=headers, method='GET')
发送请求并获取响应
with urllib.request.urlopen(req) as response:
    html = response.read().decode('utf-8')
处理响应数据

可以使用内置的 json 模块或者 beautifulsoup4 库等方式来解析响应数据。

requests库

requests 是一个优秀的HTTP库,可以方便地实现HTTP客户端功能。使用 requests 发送HTTP请求需要以下步骤:

  1. 安装 requests 库并导入
  2. 构建请求对象
  3. 发送请求并获取响应
  4. 处理响应数据
安装requests库并导入

使用pip命令安装requests库:

pip install requests

在Python代码中导入:

import requests
构建请求对象

在构建请求对象的过程中,需要先构建 headers 字典对象,设定请求的URL和请求参数,也可以设置超时时间、证书信息等。

url = 'http://example.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'
    }
params = {'key':'value'}
timeout = 3
resp = requests.get(url=url, headers=headers, params=params, timeout=timeout)
发送请求并获取响应
resp = requests.get(url=url, headers=headers, params=params, timeout=timeout)
html = resp.content.decode('utf-8')
处理响应数据

可以使用内置的 json模块或者 beautifulsoup4库来解析响应数据。

总结

使用Python的 urllib 或者 requests 库,可以非常方便地实现HTTP客户端功能。在实际开发中,根据具体需求选择合适的库,也可以结合其他库或者框架使用,比如 asyncioScrapy 等。