python urllib和urllib3知识点总结

yizhihongxing

以下是针对“Python urllib和urllib3知识点总结”的完整攻略。

1. urllib和urllib3是什么?

1.1 urllib

urllib是Python中一个内置的HTTP客户端库,提供了一系列的URL处理方法,包括:打开URL、读取URL返回的数据、提交数据到指定的URL等。在Python3.x中,urllib库已经被拆分成四个子模块:
- urllib.request:打开和读取URL的主要模块。
- urllib.parse: 解析URL的模块,提供了一系列的URL解析方法。
- urllib.error: 定义了urllib.request的异常集合。
- urllib.robotparser:解析robots.txt文件的模块。

1.2 urllib3

相比于urlliburllib3是一个第三方库,可以更好的处理HTTP请求。urllib3使用的是连接池的方式,一个连接在使用之后就会回收到连接池中,而不会直接关闭,以供后续的请求继续使用。urllib3可以很好的应对并发请求,减少因服务器响应慢导致的等待时间,提高应用性能。

2. urllib使用示例

2.1 GET请求

下面是一个使用urllib进行GET请求的示例:

import urllib.request

url = 'http://www.example.com'
with urllib.request.urlopen(url) as f:
    response = f.read()
print(response)

urllib.request.urlopen(url)用于打开一个URL并返回一个类似文件的对象。我们可以用read()方法读取其中的内容,这里演示的是请求一个URL并打印得到的html页面数据。

2.2 POST请求

下面是一个使用urllib进行POST请求的示例:

import urllib.parse
import urllib.request

url = 'http://www.example.com/login'
values = {'username': 'example_user', 'password': 'example_password'}
data = urllib.parse.urlencode(values).encode('utf-8')

req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as f:
    response = f.read()

print(response)

这里除了URL以外,我们额外定义了一个字典类型的参数values, 并且使用urllib.parse.urlencode将它转换为url编码,最终将编码后的数据通过POST方法发送给服务器。

此外,我们还可以添加HTTP头部信息,可以通过添加 headers 参数来实现;或是使用add_header()方法添加其它的自定义头部。

import urllib.request

url = 'http://www.example.com'
headers = {'Content-Type': 'application/json'}
req = urllib.request.Request(url, headers=headers)

with urllib.request.urlopen(req) as f:
    response = f.read()

print(response)

3. urllib3使用示例

3.1 创建连接池

使用urllib3要先构造一个PoolManager实例,创建好连接池以供后面的请求使用。其中,PoolManager实例可以自动选择连接并发起HTTP请求,因此在使用时可以直接传递需要的URL和数据。

import urllib3

# 创建连接池
http = urllib3.PoolManager()
# 向URL发送GET请求
response = http.request('GET', 'http://www.example.com')
print(response.data)

3.2 发送POST请求

发送POST请求时可以使用urllib3.connectionpool.HTTPConnectionPool.request()或是urllib3.PoolManager().request()` 方法,下面是一个使用后者方法的POST请求的示例:

import json
import urllib3

http = urllib3.PoolManager()

data = {'username': 'example_user', 'password': 'example_password'}
encoded_data = json.dumps(data).encode('utf-8')
headers = {'Content-Type': 'application/json'}
response = http.request('POST', 'http://www.example.com/login', body=encoded_data, headers=headers)

print(response.data)

urllib类似,这里除了URL以外,我们使用一个字典类型的参数data来指定POST请求参数,并使用json.dumps将其转换为JSON格式。然后我们又定义了一个headers请求头部信息。

总结

本文中我们详细讲解了Python中urlliburllib3的使用,并通过示例代码演示了GET和POST请求的使用,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python urllib和urllib3知识点总结 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python安装docx依赖包教程

    下面是Python安装docx依赖包教程的完整攻略,过程中包含两条示例说明。 一、安装python-docx 安装python-docx模块的前提是需要安装pip工具。如果您已经安装了pip,请直接跳到步骤2。 步骤1:安装pip 在python安装目录下找到Scripts目录,打开命令行窗口,在此目录下输入以下命令: python get-pip.py 步…

    python 2023年6月3日
    00
  • Python3打包exe代码2种方法实例解析

    在Python中,我们可以使用pyinstaller和cx_Freeze两种工具将Python代码打包成可执行文件(exe)。本文将详细介绍这两种工具的使用方法,并提供两个示例。 方法1:使用pyinstaller打包exe pyinstaller是一个流行的Python打包工具,可以将Python代码打包成可执行文件。以下是使用pyinstaller打包e…

    python 2023年5月15日
    00
  • Python操作Sonqube API获取检测结果并打印过程解析

    下面是Python操作Sonqube API获取检测结果并打印过程解析的完整攻略。 1. 了解Sonqube API Sonqube是一个用于代码质量管理的工具,通过Sonqube API可以获取代码检测结果、报告等相关信息。在进行Python操作之前,我们必须先了解Sonqube API的基本信息。 Sonqube API的基本信息: URL: http:…

    python 2023年6月3日
    00
  • 详解在Python中使用Cat命令

    在Python中,可以通过调用操作系统的命令来使用Cat命令。Cat命令可以将一个或多个文件的内容输出到终端。下面是使用Cat命令的完整攻略: 命令格式 cat [选项] [文件] 选项可以有以下几种: -b:对非空行进行编号,空行不编号。 -n:对所有行进行编号。 -s:将连续的多个空行压缩成一个空行。 文件可以是一个或多个文件名,文件名之间用空格隔开。如…

    python-answer 2023年3月25日
    00
  • 在 Python 中通过 XMLRPC 发布 HTML 数据?

    【问题标题】:Post HTML data via XMLRPC in Python?在 Python 中通过 XMLRPC 发布 HTML 数据? 【发布时间】:2023-04-03 17:26:01 【问题描述】: 我正在用 Python 编写一个小脚本来连接并将内容发布到我的 WordPress 博客。 https://github.com/maxcu…

    Python开发 2023年4月8日
    00
  • Python 斯皮尔曼等级顺序相关度

    Python 斯皮尔曼等级顺序相关度(Spearman’s Rank Correlation Coefficient)是一种衡量两个变量之间相关度的统计方法,它用于衡量两个变量之间的单调关系,即当一个变量下降时,另一个变量也下降,反之亦然。它对于异常值不太敏感,具有较好的鲁棒性和可靠性,适用于非线性数据和非正态分布数据的相关性分析。 下面是Python中使用…

    python-answer 2023年3月25日
    00
  • 使用C语言扩展Python程序的简单入门指引

    下面是使用C语言扩展Python程序的简单入门指引。 1. 概述 C语言可以作为Python程序的扩展语言,以提高Python程序的性能。扩展Python程序需要了解Python的C API和一些C编程技巧。 2. 准备工作 在扩展Python程序之前,我们需要安装Python开发工具包和Python的头文件,可以通过使用包管理器安装,例如在Ubuntu系统…

    python 2023年5月14日
    00
  • Python 复平面绘图实例

    先来简单介绍一下“Python 复平面绘图实例”。 Python 复平面绘图实例是一个可以让你在 Python 中使用复平面绘制图像的工具。复平面在数学中是一个非常重要的概念,它可以用来描述复数,也可以用来描述复变函数的性质。通过使用 Python 复平面绘图实例,你可以更加直观地了解复平面的性质,也可以更好地理解复数和复变函数。 下面,我将详细讲解“Pyt…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部