继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

7.2 HTTP协议与相关库(如requests, urllib等)

移动安全星球
关注TA
已关注
手记 150
粉丝 1
获赞 9

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请求和处理响应。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP