关于人工智能:72-HTTP协议与相关库如requests-urllib等

53次阅读

共计 1952 个字符,预计需要花费 5 分钟才能阅读完成。

HTTP(超文本传输协定)是一个用于传输超文本(如 HTML 页面)的协定,它运行在 TCP/IP 协定族之上。HTTP 协定定义了客户端(通常是 Web 浏览器)与服务器之间的通信形式。在本节中,咱们将学习 HTTP 协定的基本概念并相熟 Python 中常见的 HTTP 库,例如 requestsurllib

HTTP 协定基本概念

  1. URL(对立资源定位符):用于定位互联网上资源的地址。例如:https://www.example.com/index.html
  2. 申请与响应:HTTP 协定通信基于申请 - 响应模型。客户端发送申请,服务器响应申请并返回数据。
  3. 办法:HTTP 申请有多种办法,如 GET、POST、PUT、DELETE 等,用于形容申请操作的类型。例如,GET 用于获取资源,POST 用于发送数据。
  4. 状态码:HTTP 响应蕴含一个状态码,用于示意申请是否胜利。例如,200 示意胜利,404 示意未找到资源。
  5. 申请头和响应头 :HTTP 申请和响应能够蕴含头部信息,用于提供额定的元数据。例如,Content-Type 示意数据的 MIME 类型。

Python 中的 HTTP 库

requests

requests是一个弱小且易用的 Python HTTP 库。首先,须要装置 requests 库:

pip install requests

上面是一个应用 requests 库发送 GET 申请的示例:

import requests

response = requests.get('https://www.example.com')
print(response.status_code)  # 输入状态码,例如:200
print(response.text)  # 输入响应文本

发送 POST 申请:

import requests

data = {'key': 'value'}
response = requests.post('https://www.example.com', data=data)
print(response.status_code)  # 输入状态码
print(response.text)  # 输入响应文本

解决 JSON 数据:

import requests

response = requests.get('https://api.example.com/data')
print(response.status_code)  # 输入状态码

# 将响应内容解析为 Python 字典
data = response.json()
print(data)

urllib

urllib是 Python 规范库中的一个模块,提供了解决 URLs(次要是 HTTP)的一系列性能。上面是一个应用 urllib 发送 GET 申请的示例:

from urllib import request

url = 'https://www.example.com'
response = request.urlopen(url)
print(response.status)  # 输入状态码,例如:200
print(response.read().decode('utf-8'))  # 输入响应文本

发送 POST 申请:

from urllib import request, parse

url = 'https://www.example.com'
data = {'key': 'value'}
data_encoded = parse.urlencode(data).encode('utf-8')  # 编码 POST 数据

response = request.urlopen(url, data=data_encoded)
print(response.status)  # 输入状态码
print(response.read().decode('utf-8'))  # 输入响应文本

解决 JSON 数据:

import json
from urllib import request

url = 'https://api.example.com/data'
response = request.urlopen(url)
print(response.status)  # 输入状态码

# 将响应内容解析为 Python 字典
data = json.loads(response.read().decode('utf-8'))
print(data)

本节介绍了 HTTP 协定的基本概念以及 Python 中的 requestsurllib库。理论开发中,举荐应用 requests 库,因为它更加简洁和易用。通过本节的学习,你应该能够编写简略的 Python 网络程序,并理解如何发送 HTTP 申请和解决响应。
举荐浏览:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

正文完
 0