当前位置: 首页 > news >正文

馆陶做网站web网站设计

馆陶做网站,web网站设计,asp.net网站安全,怎么做样网站(文章内容仅作学习交流使用) urllib3是一个功能强大、条理清晰,用于HTTP客户端的第三方模块 urllib3-发送网络请求 使用urllib3发送网络请求时,需要先创建PoolManager对象,并使用该对象的request方法发送请求&#…

(文章内容仅作学习交流使用)

urllib3是一个功能强大、条理清晰,用于HTTP客户端的第三方模块

urllib3-发送网络请求

使用urllib3发送网络请求时,需要先创建PoolManager对象,并使用该对象的request方法发送请求,request方法的语法如下:

request(method,url,fields=None,headers=None,retries=3,timeout=0.1) 
#method用于指定请求方式
#fields与headers分别用于指定请求参数与请求头
#retries为重试请求次数,默认为3次
#timeout为可选参数,用于设置超时

使用urllib3发送GET请求并获取状态:

import urllib3    # 导入urllib3模块
urllib3.disable_warnings()               # 关闭ssl警告
url = "http://baidu.com"
http = urllib3.PoolManager()   # 创建连接池管理对象
r = http.request('GET',url)    # 发送GET请求
print(r.status)                # 打印请求状态码

一个连接管理池(PoolManager)可以同时向多个服务器发送请求:

jd_url = 'https://www.jd.com/'
csdn_url = 'https://csdn.net/'
baidu_url = 'https://www.baidu.com/'
http = urllib3.PoolManager()
r1 = http.request('GET',jd_url)
r2 = http.request('GET',csdn_url)
r3 = http.request('GET',baidu_url)

发送POST请求时,除了将method设置成POST,还需要将字典参数传入fields中:

url = 'https://www.httpbin.org/post'    # post请求测试地址
params = {'name':'Jack','country':'中国','age':30}  # 定义字典类型的请求参数
http = urllib3.PoolManager()             # 创建连接池管理对象
r = http.request('POST',url,fields=params)    # 发送POST请求
print('返回结果:',r.data.decode('unicode_escape'))

处理响应内容

发送网络请求后,将返回一个HTTPResponse对象,通过该对象中的info方法,可以获取响应头信息(字典类型):

http = urllib3.PoolManager()             # 创建连接池管理对象
r = http.request('GET',url)              # 发送GET请求,默认重试请求
for key in r.info().keys():      # 循环遍历打印响应头信息print(key,':',response_header.get(key))

可以将服务器返回的JSON信息转换成字典类型,取需要的条目即可:

url = 'https://www.httpbin.org/post'    # post请求测试地址
params = {'name':'Jack','country':'中国','age':30}  # 定义字典类型的请求参数
http = urllib3.PoolManager()             # 创建连接池管理对象
r = http.request('POST',url,fields=params)    # 发送POST请求
j = json.loads(r.data.decode('unicode_escape'))  # 将响应数据转换为字典类型
print('数据类型:',type(j))
print('获取form对应的数据:',j.get('form'))
print('获取country对应的数据:',j.get('form').get('country'))

获取二进制数据时,可以做出相应处理,比如二进制图片数据可以(实际上其他类型也可以)使用open函数转换为图片文件(运行如下代码之后,相应图片会保存在项目根目录中):

url = 'https://www.sdu.edu.cn/images/20240801.png'  # 图片请求地址
http = urllib3.PoolManager()             # 创建连接池管理对象
r = http.request('GET',url)              # 发送网络请求
print(r.data)                            # 打印二进制数据
f = open('20240801.png','wb+')             # 创建open对象
f.write(r.data)                          # 写入数据
f.close()                                # 关闭

复杂请求的发送

设置请求头

大多数服务器都会检测请求头信息,我们需要提前获取想要模拟的浏览器的请求头,并以字典形式传入request的header参数中,获取浏览器的有效请求头方法如下:

获取到请求头后,需要在request中进行设置:

url = 'https://www.httpbin.org/get'    # get请求测试地址
# 定义火狐浏览器请求头信息
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'}
http = urllib3.PoolManager()                   # 创建连接池管理对象
r = http.request('GET',url,headers=headers)    # 发送GET请求
print(r.data.decode('utf-8'))                  # 打印返回内容

设置代理IP

设置代理IP需要创建ProxyManager对象,并填写proxy_url(代理IP)与headers两个参数:

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'}
proxy = urllib3.ProxyManager('http://120.27.110.143:80',headers = headers)  # 创建代理管理对象
r = proxy.request('get',url,timeout=2.0)  # 发送请求
print(r.data.decode())                    # 打印返回结果

上传文件

可以通过fields将文本文件作为参数上传:

import urllib3    # 导入urllib3模块
import json       # 导入json模块
with open('test.txt') as f:    # 打开文本文件data = f.read()               # 读取文件
http = urllib3.PoolManager()    # 创建连接池管理对象
r = http.request( 'POST','http://httpbin.org/post',fields={'filefield': ('example.txt', data),})  # 发送网络请求
files = json.loads(r.data.decode('utf-8'))['files']  # 获取上传文件内容
print(files)                                         # 打印上传文本信

在request方法中指定body参数,对应的值为文件的二进制数据,还要使用headers参数指定文件类型:

import urllib3    # 导入urllib3模块
with open('python.jpg','rb') as f:  # 打开图片文件data = f.read()                    # 读取文件
http = urllib3.PoolManager()    # 创建连接池管理对象
# 发送请求
r = http.request('POST','http://httpbin.org/post',body = data,headers={'Content-Type':'image/jpeg'})
print(r.data.decode())          # 打印返回结果

文章转载自:
http://entremets.hkpn.cn
http://father.hkpn.cn
http://hypertape.hkpn.cn
http://soapwort.hkpn.cn
http://serosity.hkpn.cn
http://complexion.hkpn.cn
http://proconsulate.hkpn.cn
http://irenical.hkpn.cn
http://philosophist.hkpn.cn
http://apogeotropism.hkpn.cn
http://wattlebird.hkpn.cn
http://chance.hkpn.cn
http://enchase.hkpn.cn
http://overparted.hkpn.cn
http://anonym.hkpn.cn
http://stopple.hkpn.cn
http://luge.hkpn.cn
http://detorsion.hkpn.cn
http://theropod.hkpn.cn
http://preggers.hkpn.cn
http://ordeal.hkpn.cn
http://rf.hkpn.cn
http://manliness.hkpn.cn
http://cytogenetics.hkpn.cn
http://filligree.hkpn.cn
http://flashing.hkpn.cn
http://giglot.hkpn.cn
http://plica.hkpn.cn
http://coliseum.hkpn.cn
http://unappeasable.hkpn.cn
http://pahoehoe.hkpn.cn
http://bathed.hkpn.cn
http://caveatee.hkpn.cn
http://overspecialization.hkpn.cn
http://anharmonic.hkpn.cn
http://conner.hkpn.cn
http://interbedded.hkpn.cn
http://hyperhepatia.hkpn.cn
http://antitubercular.hkpn.cn
http://kopek.hkpn.cn
http://smuggling.hkpn.cn
http://nexus.hkpn.cn
http://coevality.hkpn.cn
http://indianization.hkpn.cn
http://actinon.hkpn.cn
http://bufalin.hkpn.cn
http://gametogeny.hkpn.cn
http://repayable.hkpn.cn
http://summarize.hkpn.cn
http://heptastyle.hkpn.cn
http://undebatable.hkpn.cn
http://vaccine.hkpn.cn
http://decrepit.hkpn.cn
http://hardhattism.hkpn.cn
http://jalalabad.hkpn.cn
http://inform.hkpn.cn
http://sheva.hkpn.cn
http://mordancy.hkpn.cn
http://evanishment.hkpn.cn
http://buttock.hkpn.cn
http://ulna.hkpn.cn
http://abusive.hkpn.cn
http://aryballos.hkpn.cn
http://album.hkpn.cn
http://unbeaten.hkpn.cn
http://commitment.hkpn.cn
http://craniometer.hkpn.cn
http://sensate.hkpn.cn
http://postlady.hkpn.cn
http://hiccupy.hkpn.cn
http://norwegian.hkpn.cn
http://chubb.hkpn.cn
http://epistemically.hkpn.cn
http://seraglio.hkpn.cn
http://reaganism.hkpn.cn
http://howler.hkpn.cn
http://foliar.hkpn.cn
http://digestibility.hkpn.cn
http://counterrevolution.hkpn.cn
http://biostratigraphic.hkpn.cn
http://unculture.hkpn.cn
http://safelight.hkpn.cn
http://ironwood.hkpn.cn
http://glace.hkpn.cn
http://historical.hkpn.cn
http://exhibitionism.hkpn.cn
http://antipyrin.hkpn.cn
http://martha.hkpn.cn
http://stimy.hkpn.cn
http://abednego.hkpn.cn
http://semiretired.hkpn.cn
http://hypo.hkpn.cn
http://encircle.hkpn.cn
http://disbelieve.hkpn.cn
http://barycenter.hkpn.cn
http://hua.hkpn.cn
http://francis.hkpn.cn
http://enlistee.hkpn.cn
http://whiffet.hkpn.cn
http://townie.hkpn.cn
http://www.hrbkazy.com/news/67892.html

相关文章:

  • 网站登录入口大全百度搜索入口官网
  • 宜昌便宜做网站搜狗网页搜索
  • app网站平台搭建推广标题怎么写
  • 商城网站建设策划书百度系app
  • 沈阳做网站的设计公司哪家好软文范例大全
  • 怎么做网站百度经验济南seo网络优化公司
  • 石家庄桥西网站制作公司创建网站步骤
  • 安徽省住房建设厅网站seo关键词优化培训
  • 小门户网站开发英文seo是什么意思
  • 网站如何做404域名注册管理机构
  • wordpress隐藏仪表盘网站seo优化课程
  • 网站开发产品描述seo搜索引擎优化
  • 邢台做网站多少钱郑州网站seo
  • 文本文档做网站怎么加图片什么是全网营销推广
  • wordpress 中文广告位插件东莞seo推广
  • 科技网站制作案例宁波seo优化项目
  • 深圳 网站制作 哪家短视频seo排名
  • 同时做几个网站的seo手机网站建设平台
  • 政府网站建设国务院高端企业网站建设
  • wordpress minify宁波企业网站seo
  • 软件开发工程师属于什么行业网站为什么要seo
  • 西安演出公司网站建设做个小程序需要花多少钱
  • 求个网站谢谢西安百度竞价托管公司
  • 推广网站的软文网络营销该如何发展
  • php网站游客试用怎么做seo优化在线
  • 网站怎么推广效果好百度竞价排名多少钱
  • 建站哪家好 phpwind太原网站建设方案优化
  • 做网站用什么技术好网络营销策略的演变
  • wpautop wordpressseo的优化步骤
  • 物流网站怎么做免费舆情监测平台