python修改静态html_Python 静态页面爬虫---urllib3库实现

1、生产请求

urllib3库是通过PoolManager实例来生产请求的,由该实例处理与线程池的链接机线程安全的所有细节

urllib3.request函数创建一个请求

语法:

http =urllib3.PoolManager()

rq= http.request('method','url',headers={默认为None},fields={默认为None},**urlopen_kw)

参数解释:

参数名称

说明

method

表示请求的类型。GET,POST等,必须写

url

表示字符串形式的网址

fields

表示请求类型所带的参数

headers

表示请求头所带的参数

**urlopen_kw

接收dict和python中的数据类型的数据,依据具体需求及请求的类型可添加的参数,通常参数赋值为字典类型或者具体数据

2、请求头处理

request函数中,参数header通常定义为一个字典类型来实现

#生产PoolManager实例

http =urllib3.PoolManager()#发送request请求

rq = http.request("GET",'https://www.baidu.com/')#发送带有header请求头的request请求

hd = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/78.0.3904.108'} #定义header参数,常用的是dict类型

rq = http.request("GET",'https://www.baidu.com/',headers=hd)

3、设置timeout

timeout参数主要是为了防止因为网络不稳定、服务器不稳定等问题造成链接不稳定时丢包

timeout设置有两种方法:

url = 'https://www.baidu.com/'

#方法1: 在PoolManager实例中设置timeout参数

http = urllib3.PoolManager(timeout = 4)

http1= urllib3.PoolManager(timeout=urllib3.Timeout(connect=1.0,read=3.0)) #分别设置链接与读取的timeout参数#方法2: 直接在url参数后面添加统一的timeout参数

rq = http1.request('GET',url,timeout=3)

rq1= http1.request('GET',url,timeout=urllib3.Timeout(connect=1.0,read=3.0)) #分别设置链接与读取的timeout参数

注意:以request函数中的timeout参数,会覆盖PoolManager实例的timeout参数

4、请求重试设置(retries:重试,redirect:重定性)

retries:默认值为3,设置时参数必须为整数

retries:如果没有设置redirect时,表示同时设置重试和重定向的次数,

如果设置了 redirect时,retries表示设置重试次数,redirect表示重定向次数

url = 'https://www.baidu.com/'

#方法1: 在PoolManager实例中设置retries参数

http = urllib3.PoolManager(retries = 4)

http1= urllib3.PoolManager(timeout=urllib3.Timeout(connect=1.0,read=3.0)) #分别设置链接与读取的timeout参数#方法2: 直接在url参数后面添加统一的retries参数

rq = http1.request('GET',url,retries=3) #请求重试和重定向都为3次

rq1 = http1.request('GET',url,retries=3,redirect=4) #请求重试3次,重定向4次

rq2 = http1.request('GET',url,retries=False) #同时关闭请求重试与重定向

rq3 = http1.request('GET',url,redirect=False) #仅关闭重定向

5、生产一个完整http请求

#创建PoolManager实例

Http =urllib3.PoolManager()#请求方式

method = "GET"

#请求目标URL地址

url = 'https://www.baidu.com/'

#请求头信息

head = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/78.0.3904.108'}#设置timeout,链接超时1秒,读取超时3秒

timeout = urllib3.Timeout(connect=1.0,read=3.0)#设置重试次数

retries = 4

#设置重定向次数

redirect = 8

#请求

requests = Http.request(method,url,headers=head,timeout=timeout,retries=retries,redirect=redirect)print(requests.status) #requests.status返回状态码

print(requests.data.decode('utf8')) #返回获取的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xgboost算法_工业大数据:分析算法

一. 应用背景大数据分析模型的研究可以分为3个层次,即描述分析(探索历史数据并描述发生了什么)、预测分析(未来的概率和趋势)和规范分析(对未来的决策给出建议)。工业大数据分析的理论和技术研究仍处于起步阶段,主要应用场景如下:1. 预测性维…

GC之七--gc日志分析工具

性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析。 Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc日志 -verbose.gc开关可显示GC的操…

python爬虫网络库下载_Python3 DHT 网络磁力种子爬虫

Python3 DHT 网络磁力种子采集器😎 严肃的理论磁力链接现在我们使用迅雷等工具下载资源的时候,基本上都只需要一个叫做磁力链接的东西就可以了,非常方便。磁力定义磁力链接是对等网络中进行信息检索和下载文档的电脑程序。和基于“位置”连接…

postgresql修炼之道_PostgreSQL的TOAST技术

本文参考:PostgreSQL TOAST 技术理解《PostgreSQL修炼之道》一、TOAST是什么?TOAST是“The Oversized-Attribute Storage Technique”(超尺寸属性存储技术)的缩写,主要用于存储一个大字段的值。要理解TOAST&#xff0c…

3D器官和骨骼将使移植清单成为历史

来源:IEEE电气电子工程师学会对于患有慢性病或病情危重的患者,等待器官移植匹配的时间可能对生命生死攸关。根据美国卫生资源和服务管理局(Health Resources and Services Administration:https://www.organdonor.gov/statistics-…

11月25号站立会议

小组名称:飞天小女警 项目名称:礼物挑选小工具 小组成员:沈柏杉(组长)、程媛媛、杨钰宁、谭力铭 代码地址:HTTPS: https://git.coding.net/shenbaishan/GIFT.git SSH:gitgit.coding.net:shenbai…

linux 键盘过滤,linux – 需要拦截HID Keyboard事件(然后阻止它们)

我有一个RFID USB设备,注册为HID设备(A USB键盘或多或少).我正在寻找一种方法来捕获此输入,并在它碰到普通键盘事件处理程序(并将10位数的RFID代码输出到控制台)之前对其进行阻塞/过滤.我当然必须专门捕获这个设备,并且将真正的键盘输入单独留下(或传递给它).我最初的想法是在U…

鱼c论坛python课后作业_三日速成python?打工人,小心钱包,别当韭菜

随着人工智能的热度越来越高,许多非计算机专业的同学们也都纷纷投入到学习编程的道路上来。而Python,作为一种相对比较容易上手的语言,也越来越受欢迎。网络上各类网课层出不穷,各式广告令人眼花缭乱。某些课程甚至卖出“天价”&a…

Linux shell的输入输出

echo --echo命令可以显示文本行或变量,或者把字符串输入到文件 --echo [option] string-e 解析转义字符 例如:echo -e "nimenhao\nasfdsaf" 打印发生换行-n 回车不换行 详解:一般在命令行打印字符串,光标会…

区块链共识算法的发展现状与展望

来源:平行区块链摘 要 共识算法是区块链技术的核心要素, 也是近年来分布式系统研究的热点. 本文系统性地梳理和讨论了区块链发展过程中的 32 种重要共识算法, 介绍了传统分布式一致性算法以及分布式共识领域的里程碑式的重要研究和结论, 提出了区块链共识算法的一种…

python预测发展趋势_Python中的趋势“预测器”?

对于预测时间序列数据,我觉得最好的选择是LSTM,它是一种递归神经网络,非常适合于时间序列回归。在如果您不想深入研究神经网络的后端,我建议您使用Keras库,它是Tensorflow框架的包装器。在假设你有一个一维数组&#x…

iphone打字怎么换行_iPhone电池保养指南

虽然手机电池的使用寿命会随着用户的日常使用慢慢减少、但需要注意的是、一些不恰当的操作方法,会导致电池寿命快速下降。这时候会有人说,那我可以换电池呀虽然换电池之后,一开始确实还可以,但是随着不恰当的使用,又开…

vc2017 linux printf,C/C++中自定义信息输出——printf与宏的配合使用

在C/C中,提起“宏”多少有些皱眉,至少我在入门C时旁人好心提醒:尽可能地使用typedef与const常量定义来替代“宏”的使用:1. 类型宏定义#define HANLE void*//可以替换为:typedef void *HANLE;2. 常量定义#define MAX_L…

SVN需要忽略的文件类型

自己在用的,有问题的话欢迎指正,直接复制粘贴即可。(一般人我都不告诉他) *.lo,*.la,*.al,*.so,*.so.[0-9]*,*.pyc,*.pyo,*.rej,.*.swp,.DS_Store,*.xcscmblueprint,xcuserdata,*.xcuserdatad,*.xcuserstate,*.xcuserdata,xcschem…

这是我看过,最好懂的神经网络

来源:图灵教育猜一猜,下图中是什么动物?图1 看图猜动物尽管图中的动物胖得出奇,你也应该能够猜到它是一只长颈鹿。人类的大脑拥有强大的辨识能力,它是一个由差不多 800 亿个神经元组成的复杂网络。即使某物并非我们熟知…

python atm作业详解_Python学习day5作业-ATM和购物商城

Python学习day5作业Python学习day5作业ATM和购物商城作业需求ATM:指定最大透支额度可取款定期还款(每月指定日期还款,如15号)可存款定期出账单支持多用户登陆,用户间转帐支持多用户管理员可添加账户、指定用户额度、冻结用户等购物车&#xf…

linux咋socket编程,linux中socket编程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼客户端:include #include #include #include #include #include #include #include #include #define SERVPORT 1234#define MAXDATASIZE 1000 /**/ int main(int argc, char *argv[]){int sockfd, recvbytes;int clien…

redis 简单应用

Incr $views Redis::incr(views); $article_views Redis::incr(article: . $article_id . :views); zIncrBy 有序集合 Sorted sets public function set($id){Redis::zIncrBy(articleViews, 1, article:.$id);}public function get(){$hots Redis::zRevRange(articleViews…

上位机软件用什么写的_python7天训练营 | 为什么大家都开始用python写论文了?...

谈及保研,“内卷”被大家吵得沸沸扬扬。但其实,不仅是夏令营申请竞争、推免资格评比等环节,就连最基本的论文,也开始卷了起来。就以大家最常写的实证类论文为例:前两年,很多社科和经管的学科,夏…

美国如何发展脑科技

来源:蓝海长青智库作者:王小理、韩雪、薛淮大脑是理解自然和人类本身的“终极疆域”,脑科技是科研领域“皇冠上的明珠”。相比欧洲“人类脑计划”的迟缓,美国“推进创新神经技术脑研究计划”(BRAIN)进展颇为…