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. TeamViewer 免费版的安全性和隐私问题

    TeamViewer 靠个免费个人版获取了大量用户,但也因为这个遭遇大量吐槽.国内用户吐槽的焦点在于"被提示用于商业用途,要求购买许可,但是商业许可又太贵". 接下来这份新闻,我们 ...

  2. 【U8】 生产订单下bom 提示 “遇到以0做除数错误”错误

    一个虚拟件子件的子件为无换算率存货,bom中对应的换算率.辅助基本用量为0,修改为null后正常. 对应 bom_opcomponent表的 ChangeRate 换算率 AuxBaseQtyN 辅助 ...

  3. Vue3.0极速入门(二) - 目录和文件说明

    目录结构 以下文件均为npm create helloworld自动生成的文件目录结构 目录截图 目录说明 目录/文件 说明 node_modules npm 加载的项目依赖模块 src 这里是我们要 ...

  4. NOIP模拟67

    前言 从这一次到 71 都是多校联考了,尽管考的不咋样.. T1 数据恢复 解题思路 这个题真的是.. 先声明一个点,对于优先队列以及 set 都是在某个元素插入的时候进行比较,但是在之后如果修改比较 ...

  5. 终于搞懂了!原来vue3中template使用ref无需.value是因为这个

    前言 众所周知,vue3的template中使用ref变量无需使用.value.还可以在事件处理器中进行赋值操作时,无需使用.value就可以直接修改ref变量的值,比如:<button @cl ...

  6. AnkhSVN For Visual Studio 2022

    AnkhSVN For VS2022 AnkhSVN 2.9.87 - Visual Studio 2022 support https://github.com/AmpScm/AnkhSVN/rel ...

  7. work11

    1,简述String类中的equals方法与Object类中的equals方法的不同点. /* Object 类 1,它是所有类的一个根类 2,其他类默认继承Object类 常用方法: 1,toStr ...

  8. 网络诊断工具nslookup的使用

    nslookup 是一个网络诊断工具,用于查询域名系统(DNS)记录,将域名解析为IP地址,或者查询其他DNS记录类型,如MX(邮件交换记录).CNAME(别名记录)等.以下是一些常见Linux发行版 ...

  9. 小白也能玩转Git:从入门到实战详细教程

    Git介绍 Git是一种分布式版本控制系统,它广泛应用于软件开发中.通过Git,开发人员可以追踪文件的变化.协作工作.管理代码库等.与集中式版本控制系统(如SVN)不同,Git使每个开发人员都具有完整 ...

  10. MySql 中 select 使用

    MySql select 多种查询方式 前言 在数据库使用过程中,使用最多的场景就是查询数据,所以今天我们总结一下常用用的查询 简单查询 带条件查询 多条件查询 输出指定字段查询 分组查询 查询结果排 ...