python https协议和InsecurePlatformWarning问题
本人最近在学习python,今天想使用python来抓取糗事百科网站上的一些笑话故事的,由于糗事百科的网站url采取的是https协议,所以当我按照常规的方式抓取的时候,发现不行,报错了,找了很多方法都不好使,这对于一个初学者来说真是很捉鸡的一件事情,最后google了好久,终于找到了解决的办法,接下来一起看一下
一、针对https协议的网站需要验证证书
错误信息:'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)' ,这句话的意思就是证书验证失败了
解决方法:在requests的请求方法中添加参数 verify=False ;例如:requests.get('https://www.qiushibaike.com/hot/page/1/',verify=False),
二、InsecurePlatformWarning 问题
在经过第一步添加了参数之后,可以请求到了网站的信息了,但是会出现两个warning级别的错误:
G:\Python27\lib\site-packages\urllib3\connectionpool.py:858: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning)
G:\Python27\lib\site-packages\urllib3\connectionpool.py:858: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning)
上边的警告提示大义是:未经验证的HTTPS请求正在进行。 强烈建议添加证书验证。 请参阅:https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
虽然这个warning提示不会影响程序的运行,但是对于有强迫症的人来说还是很不舒服的(本人有严重的强迫症),所以有没有什么办法不显示(去掉这些warning级别的错误呢?)??
解决方法:可以通过 disable_warnings 方法关闭 warning,只需要在代码中添加这一句即可,requests.packages.urllib3.disable_warnings()
下边是简单的获取糗事百科第一页的数据的代码:
#!/usr/bin/env python
#coding=utf-8 import requests page = 1
url = 'https://www.qiushibaike.com/hot/page/' + str(page)
try:
# 避免warning级别的警告(不显示)
requests.packages.urllib3.disable_warnings() # 使用requests库请求的
response = requests.get(url, verify=False)
print response.text
except urllib2.URLError, e:
if hasattr(e,"code"):
print e.code
if hasattr(e,"reason"):
print e.reason
python https协议和InsecurePlatformWarning问题的更多相关文章
- 转载 https协议和http协议的区别
转载原地址: http://aajs800.blog.51cto.com/519255/109555 什么是HTTPS: HTTPS(Secure Hypertext Transfer Protoco ...
- 浅谈HTTPS协议和SSL、TLS之间的区别与关系
HTTP可能是我们见到过最多的一个字符串了,应该没有之一,而对于HTTPS到来和趋势,我们又开始看到SSL/TLS,所以对于一般不只做技术的人来说这或许还是一个疑问,那么子凡就趁最近在折腾这方面来给大 ...
- python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...
- http协议和https协议
内容: 1.http协议介绍 2.https协议介绍 3.http协议和https协议对比 1.http协议介绍 (1)http协议是什么 1 一个传输协议,协议就是双方都遵守的规范. 2 为什么叫超 ...
- 常见https,SSH协议和MD5加密方式分析
前言 https,SSH协议和MD5加密是前端可能会接触到的加密,所以我就将他们进行了一个归纳. 1.https 1.1原理 A.就是在http加入SSL层,是http安全的基础;B.htts协议是在 ...
- python语法基础-网络编程-TCP协议和UDP协议
############### 网络编程 ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...
- http协议和chrome浏览器
http协议和Chrome抓包工具 什么是http和https协议: HTTP协议:全称是HyperText Transfer Protocol,中文意思是超文本传输协议,是一种发布和接收HTML页面 ...
- 页面解耦—— 统跳协议和Rewrite引擎
原文: http://pingguohe.net/2015/11/24/Navigator-and-Rewrite.html 解耦神器 —— 统跳协议和Rewrite引擎 Nov 24, 2015 • ...
- python gevent 协程
简介 没有切换开销.因为子程序切换不是线程切换,而是由程序自身控制,没有线程切换的开销,因此执行效率高, 不需要锁机制.因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断 ...
随机推荐
- 【java】 java 设计模式概述
一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接 ...
- python2.0_day19_后台数据库设计思路
from django.db import models # Create your models here. from django.contrib.auth.models import User ...
- 走进ELK原理
日志的分析在联调和后期维护是非常重要. 今天让我们进入ELK...让我们一起感受这个强大的日志收集,日志分析存储,日志查询界面化显示的震撼效果吧. Elasticsearch是个开源分布式搜索引擎,它 ...
- 批处理bat文件dos命令实现文件的解压缩
::========压缩文件======================= ::将源路径“C:\Users\xcc\Desktop\多大的经济 ”路径下的文件压缩到目标路径下“D:\迅雷下载\压缩.r ...
- 3dsmax sendto mudbox失效解决方案
查看C:\ProgramData\Autodesk\Synergy下的max.2014.1.64.syncfg和Mudbox.2014.0.Windows.64.syncfg两个文件, 找到 Exec ...
- C++11新特性之三——auto
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位.auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除.前后两个标准的auto,完全是两个概念 1. ...
- Postgresql 创建主键并设置自动递增的三种方法
Postgresql 有以下三种方法设置主键递增的方式,下面来看下相同点和不同点. --方法一create table test_a ( id serial, name character var ...
- python初学总结(二)
(1)字典 字典是一种映射关系:键(key),值(value),key-value对 创建字典的方式:直接创建和利用dict函数创建 >>> aInfo = {'Wangdachui ...
- LeetCode——Contains Duplicate II
Description: Given an array of integers and an integer k, find out whether there there are two disti ...
- 存储总量达20T的MySQL实例,如何完成迁移?
版权声明:本文由王亮原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/122 来源:腾云阁 https://www.qclou ...