使用urllib3实现http请求
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请求的更多相关文章
- 禁用 urllib3 的安全请求警告
报错情况: 禁用该警告: import urllib3 urllib3.disable_warnings()
- 请求库urllib和urllib3
# coding=utf-8 # urllib """ 使用python的urllib库去模拟浏览器请求网页,常用内容如下: urllib.request 发送HTTP请 ...
- urllib和urllib3
urllib库 urllib 是一个用来处理网络请求的python标准库,它包含4个模块. urllib.request---请求模块,用于发起网络请求 urllib.parse---解析模块,用于解 ...
- urllib3使用指南
对比urllib,用urllib3处理http请求十分方便,可以嵌入web服务后端用于访问其它web实例提供的接口 一.安装 pip install urllib3 二.初始化 导入urllib3 i ...
- python 文件下载
为了演示urllib3的使用,我们这里将会从一个网站下载两个文件.首先,需要导入urllib3库: import urllib3 这两个文件的源url为: url1 = 'http://earthqu ...
- 【Python爬虫】Requests库的基本使用
Requests库的基本使用 阅读目录 基本的GET请求 带参数的GET请求 解析Json 获取二进制数据 添加headers 基本的POST请求 response属性 文件上传 获取cookie 会 ...
- 使用pyquery是遇到的一个403的问题
在网上爬虫时,本地windows下运行pyquery代码正常,但是在linux下运行时一直报错 403 Forbidden.刚开始的代码如下 from pyquery import PyQuery a ...
- BeautifulSoup实例
Beautiful Soup 4.4.0 中文文档:http://beautifulsoup.readthedocs.io/zh_CN/latest/ #coding:utf-8from bs4 im ...
- 使用Urllib下载图片
urllib下载图片 urllib3下载图片 Urllib下载图片 from urllib import request import re import os # 妹子图首页 下载首页的几张 url ...
- python爬虫之requests的高级使用
1.requests能上传文件 # 导入requests模块 import requests # 定义一个dict files = {'file': open('D:/360Downloads/1.t ...
随机推荐
- Spring Boot中的 6 种API请求参数读取方式
使用Spring Boot开发API的时候,读取请求参数是服务端编码中最基本的一项操作,Spring Boot中也提供了多种机制来满足不同的API设计要求. 接下来,就通过本文,为大家总结6种常用的请 ...
- Django - 在后台上传文章封面图 - 并在前端页面展示
需要用到 models.ImageField(), 它继承自 models.FileField(), 用ImageField的时候需要安装pillow pip install pillow -i h ...
- HTML——基本标签
1.标题标签 <h1>标题1</h1> <h2>标题2</h2> <h3>标题3</h3> <h4>标题4</ ...
- 你不知道的PageContext
你不知道的PageContext 最近在文艺复兴,学习JSP和Servlet,此文为笔者学习记录. 本文分为以下几个部分: 前言 环境搭建 正文 总结 前言 在我们使用的项目中,存储数据最常用的非 S ...
- Android 12(S) MultiMedia Learning(四)MediaPlayerService
getMediaPlayerService方法获取到的是media.player服务 IMediaDeathNotifier::getMediaPlayerService() { // ...... ...
- mysql存储地理信息的方法
MySQL 存储地理信息通常使用 GEOMETRY 数据类型或其子类型(如 POINT, LINESTRING, POLYGON 等).为了支持这些数据类型,MySQL 提供了 SPATIAL 索引, ...
- [HNOI2005] 狡猾的商人's 题解 (差分约束系统)
题目描述 给你一个\(n\)元一次方程,判断是否有解,方程给出的格式为 \(a-b=c\) 思路 这道题看上去是一道题目看上去就是判断给出条件是否有矛盾,所以就自然而然的可以使用带权并查集 但是因为我 ...
- 滴滴面试:谈谈你对Netty线程模型的理解?
Netty 线程模型是指 Netty 框架为了提供高性能.高并发的网络通信,而设计的管理和利用线程的策略和机制. Netty 线程模型被称为 Reactor(响应式)模型/模式,它是基于 NIO 多路 ...
- 语义分割评价指标(Dice coefficient, IoU)
语义分割任务常用的评价指标为Dice coefficient和IoU.Dice和IoU都是用来衡量两个集合之间相似性的度量,对于语义分割任务而言即用来评估网络预测的分割结果与人为标注结果之间的相似度. ...
- itest(爱测试) 4.5.5 发布,开源BUG 跟踪管理 & 敏捷测试管理&极简项目管理软件
itest 简介 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理4合1,又有丰富的统计分析.可按测试包分配测试用例执行,也可建测试迭代(含任务, ...