本人最近在学习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

  

最新文章

  1. DataTable 和Json 字符串互转
  2. 跟着百度学PHP[4]OOP面对对象编程-13-魔术方法__set(),__get(),__isset(),__unset()
  3. Selenium2学习-025-WebUI自动化实战实例-023-页面快照截图应用之一 -- 常规截图(全页面)
  4. win8 iis安装及网站发布
  5. Python int与string之间的转化
  6. 使用jconsole检测linux服务器
  7. [MFC] 对话框菜单项Menu选中打勾(单选,多选)
  8. Qt4.8.x Linux WebKit依赖库安装
  9. Spark处理日志文件常见操作
  10. 应用canvas绘制动态时钟--每秒自动动态更新时间
  11. 很简单的Java断点续传实现原理
  12. Shell脚本【扔一百次硬币】
  13. 查找所有sphinx引擎表并生成创建表的语句
  14. HTTP客户端/服务端 POST/GET
  15. 【工具相关】Web-ionic-ionicLab的使用
  16. 单页应用 WebApp SPA 骨架 框架 路由 页面切换 转场
  17. 从NSTimer的失效性谈起(二):关于GCD Timer和libdispatch
  18. 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(三)
  19. Expo大作战(九)--expo的工作原理,以及版本发行说明
  20. 读书笔记 ~ Python黑帽子 黑客与渗透测试编程之道

热门文章

  1. gen_server的模板
  2. 将Excel中读取的科学计数法表示的Double数据转换为对应的字符串
  3. MathType中输入破折号的教程
  4. Codeforces Round #277.5 (Div. 2)部分题解
  5. spring xml properties split with comma for list
  6. python2.0_day18_django_form
  7. idea & datagrip 注册码
  8. OAuth2认证有一定的了解
  9. Nginx.conf 配置文件详细说明
  10. jQuery中如何解决多库冲突问题