Python中验证URL是否可以访问
今天下午的时候写RPC接口自动化的时候需要验证研发传过来的URL是否可以访问,由于自己是个垃圾,没写过Python,只是这段时间学了点Java,后通过度娘与Google查了挺久,总算是搞出来了,在此记录下。
需求
研发传过来URL,比如https://master.knife.staging.dev.in.chaitin.net:9443/或者https://fk01-test.knife.staging.dev.in.chaitin.net:9443/这种,有时候在本地运行接口自动化的话URL无法连接,需要给一个默认的URL
获取URL的方法
- 一开始在网上找的是通过request.urlopen(url)来获取它的一个response,之后再通过response.getcode()获取到返回码这种(如果有返回码),没有的话就进入异常分支
后面尝试的时候确实是可以的,会验证上面的URL,将结果保存到url_check.csv文件中,但是当时一拿到优点不太懂什么意思(太菜啦),并且觉得不是自己需要的就放弃了,后面查了try…except的意思之后才发现这个和Java中的try…catch的作用一样,处理异常。 - 后面又重新找了另外的一个方法,使用requests.get(url)获取返回码操作
但是这个如果在碰到无法访问的URL时会直接把错误的返回数据打印出来,这不是我需要的(这个按理说)
取消SSL验证
- 由于我需要验证的URL都是HTTPS方式的,所以在验证是否能够访问时需要取消ssl验证,其中request.get中可以添加verify参数取消验证,
requests.get(url, verify=False)
- 使用request.urlopen时我以为也是使用verify参数的,后面发现报错,又重新找了一个方法:
context = ssl._create_unverified_context()
,之后使用下context这个参数等于这个值就可以啦(当然不要忘记导包)
成果
最终使用了request.urlopen的方式验证的,下面放上:
另记–MacBook中安装flake8,并且在pycharm中配置检查代码
- 在pycharm的terminal中安装flake8之后再配置好像更容易成功