python爬虫urllib3学习

学习python爬虫的urllib3的模块测试代码如下:

想要测试该模块的可以直接复制然后取消部分注释即可运行,在vscode中运行无报错,

import urllib3

# import json

# """ 发送网络请求 """
# url1='http://www.htttpbin.org/get'
# url2='https://www.httpbin.org/post'
# head={
#     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
#     }
# # #get请求

# # #创建PoolManager连接池管理对象
# # pool=urllib3.PoolManager()
# # #使用一个对象向多个服务器发送请求
# # response1=pool.request(method='GET',url=url1,fields=None,headers=head)
# # response2=pool.request(method='GET',url=url1,fields=None,headers=head)
# # #method:请求方法,url:url地址,filed:设置请求参数,headers:设置请求头

# #post请求,与重试请求(当请求失败时客户端会根据重试请求的次数再此发送请求)

# urllib3.disable_warnings()#关闭ssl警告
# #创建PoolManager连接池管理对象
# pool=urllib3.PoolManager()
# params={'name':'jack','age':18}
# response1=pool.request(method='POST',url=url2,fields=params,headers=head)#默认重试请求一般为3次
# # response2=pool.request(method='POST',url=url2,fields=params,headers=head,retries=5)#设置重试请求为5次
# # response3=pool.request(method='POST',url=url2,fields=params,headers=head,retries=False)#关闭重试请求
# #method:请求方法,url:url地址,filed:设置为一个字典参数,headers:设置请求头

# #打印重试请求的值
# print(response1.retries.total)
# # print(response2.retries.total)
# # print(response3.retries.total)


# #处理相应内容
# #发送请求后,我们将得到一个HTTPResponse对象
# #获取响应头
# #使用info()或getheades()获取响应头(返回的数据为字典类型),再进行遍历得到每条响应头的内容
# res_head=response1.getheaders()#也可以使用info()方法获取响应头的所有信息
# for key in res_head.keys():#keys():返回字典所有的的键值
#     print(key,':',res_head.get(key))#get(key):返回字典中该键所对应的值


# #处理服务器返回的json数据
# js=json.loads(response1.data.decode('unicode_escape'))#HTTRPResponse对象的data属性是一个字节字符串,包含接收到的响应数据,若要其转换为字符串,可使用decode方法
# #loads函数可将json格式的字符串解码为python对象,
# #格式:json.loads(json_string,object_hook,parse_float,parse_int,parse_constant,object_pairs_hook),json_string为要转换的json字符串
# #dumps(obj,skipkeys=False,ensure_asicc=True,check_circular=True,allow_nan=True,cls=None,
#         # indent=None,separators=None,encoding='utf-8',default=None,sort_keys=False)函数用于编码
# print(type(js))
# print(js.get('form'))#form为返回的响应数据(参数)所对应的键
# print(js.get('form').get('name'))

# #二进制数据
# #使用open()函数将二进制数据转为图片
# #创建open对象
# # f=open('python.png','wb+')   
# # f.write(response.data)
# # f.close()#关闭文件                                            

#设置超时
#timeout对象
#创建timeout对象
#timeout=Timeout(connect=0.5,read=0.1)#连接超时与读取超时
#response=PoolManager(timeout=timeout)或response.request('get',url=url,timeout=timeout)

#设置代理
#创建ProxyManager对象(与urllib一样)、



#上传文件
#1.通过fields参数以元组的形式分别指定文件名,内容,以及文件类型
#2.request(body,headers),body:图片的二进制数据,headers:为其指定文件类型

 若有任何问题,可以在评论区一起讨论,希望和大家一起进步!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值