相关推荐
Python HTTP请求:urllib, urllib3与requests模块详解
2025-01-03 11:34

Python中实现HTTP网络请求常见的3种方式为:urlib,urllib3和requests。下面将一一进行介绍

Python HTTP请求:urllib, urllib3与requests模块详解

1.urllib模块

urllib是Python自带模块,该模块中提供了一个urlopen)方法,通过该方法指定URL发送网络请求来获取数据。urllib提供了多个子模块,具体的模块名称与含义如下

模块名称描述urllib.request该模块定义了打开url(主要是HTTP)的方法和类,如身份验证、重定向、cookie等urllib.error该模块主要包含异常类,基本的异常类是urlerrorurllib.parse该模块定义的功能分为两大类:URL解析和URL引用urllib.robotparser该模块用于解析robots.txt文件

通过urllib.request模块实现发送请求并读取网页内容的简单实例如下

上面的实例中,是通过get请求方式获取百度的网页内容。下面通哪个更使用urllib.request模块的post请求实现 获取网页信息的内容,实例如下

这里通过http://httpbin.org/posr网站进行演示,该网站可以作为联系使用urllib的一个站点使用,可以模拟各种请求操作。

2.urllib3模块

urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3.urllib3提供了很多Python标准库里没有的重要特性
(1)线程安全

(2)连接池

(3)客户端ssl/TLS验证

(4)使用多部分编码上传文件。

(5)Helpers用于充实请求并处理HTTP重定向

(6)支持gzip和deflate编码

(7)支持HTTP和socks代理

(8)100%的测试覆盖率

post请求实现获取网页信息的内容,代码如下

3.requests模块

requests是Python中实现HTTP请求的一种方式,reques是第三方模块,该模块在实现HTTP请求是要比urllib模块简化很多,操作更加人性化。在使用reques模块时需要执行pip install requests代码进行该模块的安装。requests功能那个特性如下。

(1)Keep-Alive &连接池

(2)国际化域名和url

(3)带持久cookie的会话

(4)浏览器 式的SSL认证

(5)自动内容解码

(6)基本/摘要式的身份认证

(7)优雅的key/value cookie

(8)自动解压

(9)Unicode响应体

(10)HTTP(S)代理支持

(11)文件分块上传

(12)流下载

(13)连接超时

(14)分块请求

(15)支持.netrc

以GET请求方式为例,打印多种请求信息的实例代码如下

以post请求方式,发送HTTP网络请求的实例代码

requests模块不仅提供了以上 两种常用请求方式,还提供一下多种网络请求方式。代码如下

 

 如果发现请求的url地址中参数是在“(问号)”的后面,例如,httpbin.org/get?key=val.requests模块提供了传递参数的方法,允许用户使用params关键字参数,以一个字符串字典来提供这些参数。例如,用户想传递key1=value1和key2=value2到httpbin.org/get,那么可以使用以下代码

 

 

    以上就是本篇文章【Python HTTP请求:urllib, urllib3与requests模块详解】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/quote/86804.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://sjzytwl.xhstdz.com/mobile/ , 查看更多   
发表评论
0评