Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3。

1.发送请求

import urllib3

# 创建实例
http = urllib3.PoolManager() #发送请求
rq = http.request('GET', url='http://www.tipdm.com/tipdm/index.html')

2.设置请求头信息

In [ ]:

print('服务器响应码:', rq.status)
print('响应实体:', rq.data)

In [ ]:

import urllib3

http = urllib3.PoolManager()

# 请求头处理
head = {'User-Agent': 'Windows NT 6.1; Win64; x64'}
rq = http.request('GET', url='http://www.tipdm.com/tipdm/index.html', headers=head) print('服务器响应码:', rq.status)
print('响应实体:', rq.data)

3.防止连接不稳定

In [ ]:

#增加timeout参数设置方法1
import urllib3 http = urllib3.PoolManager()
head = {'User-Agent': 'Windows NT 6.1; Win64; x64'}
#为防止因为网络不稳定、服务器不稳定等问题造成连接不稳定时的丢包,可以在请求中增加timeout参数设置,通常为浮点数。
rq = http.request('GET', url='http://www.tipdm.com/tipdm/index.html', headers=head, timeout=3.0) print('服务器响应码:', rq.status)
print('响应实体:', rq.data)

In [ ]:

#增加timeout参数设置方法2
import urllib3 http = urllib3.PoolManager()
head = {'User-Agent': 'Windows NT 6.1; Win64; x64'}
rq = http.request('GET', url='http://www.tipdm.com/tipdm/index.html', headers=head,
timeout=urllib3.Timeout(connect=1.0, read=2.0)) print('服务器响应码:', rq.status)
print('响应实体:', rq.data)

In [ ]:

#增加timeout参数设置方法3
import urllib3 http = urllib3.PoolManager(timeout=4.0)
head = {'User-Agent': 'Windows NT 6.1; Win64; x64'}
rq = http.request('GET', url='http://www.tipdm.com/tipdm/index.html', headers=head) print('服务器响应码:', rq.status)
print('响应实体:', rq.data)

4.请求重试设置

In [ ]:

#请求重试设置
import urllib3 http = urllib3.PoolManager(timeout=4.0, retries=10)
head = {'User-Agent': 'Windows NT 6.1; Win64; x64'}
rq = http.request('GET', url='http://www.tipdm.com/tipdm/index.html', headers=head) print('服务器响应码:', rq.status)
print('响应实体:', rq.data)

In [ ]:

import urllib3

http = urllib3.PoolManager(timeout=4.0)
head = {'User-Agent': 'Windows NT 6.1; Win64; x64'}
rq = http.request('GET', url='http://www.tipdm.com/tipdm/index.html', headers=head, retries=10) print('服务器响应码:', rq.status)
print('响应实体:', rq.data)

5.完整实例

In [ ]:

import urllib3

# 发送请求实例
http = urllib3.PoolManager() # 网址
url='http://www.tipdm.com/tipdm/index.html' # 请求头
head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
# 超时时间
tm = urllib3.Timeout(connect=1.0, read=3.0)
# 重试次数和重定向次数设置并生成请求
rq = http.request('GET', url=url, headers=head, timeout=tm, retries=5, redirect=4) print('服务器响应码:', rq.status)
print('响应实体:', rq.data.decode('utf-8'))

6.参考文章

【创作不易,望点赞收藏,若有疑问,请留言,谢谢】

使用urllib3实现http请求的更多相关文章

  1. 禁用 urllib3 的安全请求警告

    报错情况: 禁用该警告: import urllib3 urllib3.disable_warnings()

  2. 请求库urllib和urllib3

    # coding=utf-8 # urllib """ 使用python的urllib库去模拟浏览器请求网页,常用内容如下: urllib.request 发送HTTP请 ...

  3. urllib和urllib3

    urllib库 urllib 是一个用来处理网络请求的python标准库,它包含4个模块. urllib.request---请求模块,用于发起网络请求 urllib.parse---解析模块,用于解 ...

  4. urllib3使用指南

    对比urllib,用urllib3处理http请求十分方便,可以嵌入web服务后端用于访问其它web实例提供的接口 一.安装 pip install urllib3 二.初始化 导入urllib3 i ...

  5. python 文件下载

    为了演示urllib3的使用,我们这里将会从一个网站下载两个文件.首先,需要导入urllib3库: import urllib3 这两个文件的源url为: url1 = 'http://earthqu ...

  6. 【Python爬虫】Requests库的基本使用

    Requests库的基本使用 阅读目录 基本的GET请求 带参数的GET请求 解析Json 获取二进制数据 添加headers 基本的POST请求 response属性 文件上传 获取cookie 会 ...

  7. 使用pyquery是遇到的一个403的问题

    在网上爬虫时,本地windows下运行pyquery代码正常,但是在linux下运行时一直报错 403 Forbidden.刚开始的代码如下 from pyquery import PyQuery a ...

  8. BeautifulSoup实例

    Beautiful Soup 4.4.0 中文文档:http://beautifulsoup.readthedocs.io/zh_CN/latest/ #coding:utf-8from bs4 im ...

  9. 使用Urllib下载图片

    urllib下载图片 urllib3下载图片 Urllib下载图片 from urllib import request import re import os # 妹子图首页 下载首页的几张 url ...

  10. python爬虫之requests的高级使用

    1.requests能上传文件 # 导入requests模块 import requests # 定义一个dict files = {'file': open('D:/360Downloads/1.t ...

随机推荐

  1. VNC 远程桌面很卡,替代方案如下

    VNC 远程桌面是一款古老的远程桌面软件,是基于 Unix 和 Linux 操作系统的免费的开源软件.免费开源很好,但是 VNC 也存在一些缺点. 1.VNC 远程桌面很卡 想白嫖 VNC,就要接受卡 ...

  2. Javascript/DOM:如何删除 DOM 对象的所有事件侦听器

    Javascript/DOM:如何删除 DOM 对象的所有事件侦听器 一.重写 重写 EventTarget 添加监听事件方法 addEventListener if (EventTarget.pro ...

  3. 阿里巴巴 MySQL 数据库之建表规约(一)

    建表规约 强制部分 [强制] 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否). 说明:任何字段如果为非负数,必须是 ...

  4. 利用Django实现文件上传

    一.form表单的形式上传文件 1.路由 urlpatterns = [ path("upload/", views.UploadView.as_view(),) ] 2.视图 f ...

  5. CSS——鼠标样式

    在浏览网页的过程中,当我们将鼠标移动到一些元素上时,鼠标的样式会发生相应的改变,例如当鼠标指向文本时,鼠标的样式会变成类似大写字母I的样子:当鼠标指向链接时,鼠标会变成一个小手的形状等. 除了这些默认 ...

  6. Vue——方法(methods)

    我们用 methods 选项向组件实例添加方法,它应该是一个包含所需方法的对象: <div id="app"></div> <script> c ...

  7. 公众号5月C#/.NET热文一览

    C#/.NET/.NET Core全面的学习.工作.面试指南知识库 转眼之间维护DotNetGuide(C#/.NET/.NET Core学习.工作.面试指南知识库)已经持续超过了三年多的时间,Com ...

  8. uniapp 输入有值后按钮变色

    我们在开发中难免会遇到一些登录注册输入框中的值为空时,按钮的状态变成为不可点击的状态,当输入框有值后就把按钮变为可点击的状态 代码部分: <input placeholder="请输入 ...

  9. YNOI 做题记

    YNOI 做题记 偶然有一天做到了其中的一道题,于是便开始做相关的题了-- [Ynoi2015] 我回来了 - 洛谷 这之一场联考搬过来的题--于是考场上写了一个 \(O((n + m)\log^2 ...

  10. sqlite3自动插入创建时间和更新时间

    最近在记录一些简单的结构化日志信息时,用到了sqlite3数据库(保存的信息比较简单,用Mysql,SQL Server,Postgres这些数据库有点小题大做). 以前开发系统时,用Mysql和Po ...