Theme-Logo
    • 通知公告
  • [登录]/[注册]
  • D 返回首页
python3编程学习
  • 基础教程
    • 初识python
    • 语法特点
    • 输入输出
    • 运算符+
    • 数据类型
    • 类型转换
    • 条件控制
    • 循环语句
    • 函数详解
    • 面向对象
    • 模块详解
    • File(文件)
    • 字符串初级
    • 字符串进阶
    • 错误和异常
  • 高级教程
    • 数据库深操作
    • web网站开发
    • GUI界面开发
    • 网络爬虫开发
    • 游戏高级开发

Python的网络请求

本节将介绍在 Python 中实现 HTTP 网络请求常见的三种方式:urllib、urllib3 以及 requests。
  • 返回首页

本节将介绍在 Python 中实现 HTTP 网络请求常见的三种方式:urllib、urllib3 以及 requests。

1、 urllib 模块

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

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

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

import urllib.request  #导入模块
response = urllib.request.urlopen("http://www.baidu.com")  #打开指定需要爬取的网页
html = response.read()   #读取网页代码
print(html)  #打印读取内容

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

import urllib.parse
import urllib.request
# 将数据使用urlencode编码处理后,再使用encoding设置为utf-8编码
data = bytes(urllib.parse.urlencode({'word': 'hello'}),encoding='utf8')
response = urllib.request.urlopen("http://www.baidu.com/post",data=data)  #打开指定需要爬取的网页
html = response.read()   #读取网页代码
print(html)  #打印读取内容

2、Urllib3模块

在使用 Urllib3 模块前,需要在Python中通过 pip install 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%的测试覆盖率

通过 Urllib3 模块实现发送网络请求的示例代码如下:

import urllib3
#创建Poo1Manager对象,用于处理与线程池的连接以及线程安全的所有细节
http = urllib3.PoolManager()
# 对需要爬取的网页发送请求
response = http.request('GET','https://www.baidu.com/')
print(response.data) #打印读取内容

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

    本文未完全显示,开通会员查看全文......

回顶部