前言:

在用Python3做爬虫实验的时候报了这个错误:urllib.error.URLError: <urlopen error unknown url type: https>

原因是代码中的url是https

url = "https..."
req = urllib.request.Request(url, data, headers)
response = urllib.request.urlopen(req)

因为python内置的urllib模块不支持https协议,而且编译安装python之前没有编译安装类似于openssl这样的SSL库,所以导致python不支持SSL。

如果你的环境已经支持ssl,那么在代码中加入import ssl就可以运行了。如果不支持,添加import ssl后会提示 ModuleNotFoundError: No module named '_ssl'。为了解决这个问题,可以按照以下步骤完成操作:

1.先安装依赖包

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel

2.找到这个文件/usr/local/python/Modules/Setup.dist(每个人安装的路径可能不一样)

取消注释 以下几行:
209 SSL=/usr/local/ssl
210 _ssl _ssl.c \
211 -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
212 -L$(SSL)/lib -lssl -lcrypto

3.重新编译python

./configure --prefix=/usr/local/python
make
make install

4.检验(没有错误提示就可以用了)

上述方法能够解决所遇到的问题(亲测),如果尝试后仍然不行,有可能是python在安装的时候依赖包出现了错误。有时候缺少包,python依然能够使用,但遇到特定情况时,问题就出现一大堆。我之前也是因为这个原因才浪费了一些时间。卸载当前使用的python后,按以下方式安装。

1.安装依赖包

yum -y groupinstall "Development tools"yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2.下载压缩包

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

3.解压

mkdir /usr/local/python
mv Python-3.6.2.tar.xz /usr/local/python
tar -xvJf  Python-3.6.2.tar.xz
cd Python-3.6.2

4.编译

./configure --prefix=/usr/local/python
make
make install

5.创建软连接

ln -s /usr/local/python/bin/python3 /usr/bin/python3

确保python的安装没有问题后,再使用上述方法。

urllib.error.URLError:urlopen error unknown url type:https 解决办法相关推荐

  1. 成功解决urllib.error.URLError urlopen error Errno 11004 getaddrinfo failed

    成功解决urllib.error.URLError: <urlopen error [Errno 11004] getaddrinfo failed> 目录 解决问题 解决思路 解决方法 ...

  2. 报错urllib.error.URLError:urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败

    找了网上很多资料都没解决,试了下就没报错了, 原因是原代码导入库错了 原来的是:from urllib import urlopen  应该改成:from urllib.request import ...

  3. 下载Pytorch的自带数据集时报错=urllib.error.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]

    错误原因: 这是一个SSL证书验证错误,当请求一个https站点,但是证书验证错误时,就会报这样的错误. 解决办法: 只需在代码中加入如下两行将跳过证书的检查,即可成功访问网页. # 全局取消证书验证 ...

  4. linux 挂载错误 mount: unknown filesystem type LVM2_member 解决方法

    系统启动到request_module: runaway loop modprobe binfmt-464c挂起 利用U盘系统,挂载硬盘出现:mount: unknown filesystem typ ...

  5. python:urllib2.URLError urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

    现在随处可见 https 开头的网站,urllib2可以为 HTTPS 请求验证SSL证书,就像web浏览器一样,如果网站的SSL证书是经过CA认证的,则能够正常访问, 如果SSL证书验证不通过,或者 ...

  6. urllib2.URLError: urlopen error [Errno 111] Connection refused

    记录个还没解决的问题.下面爬虫代码是可以执行的,但是在我的Ubuntu的虚拟中刚开始是可以运行的,但是,后来不知道改了什么东西,用urllib2写的爬虫和用scrapy 的爬虫代码都不能运行了!!. ...

  7. 在测试tensorBroad中在运行mnist_with_summaries.py时URLError:urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答

    1,问题1 URLError: <urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败.> 这个问题,是数据下 ...

  8. GAE使用时的一些问题:urllib2.URLError: urlopen error [Errno 10061]

    问题描述: Win7系统下,在用GAE自己架设代理时,用appcfg.py update myapp/上传时出现urllib2.URLError: <urlopen error [Errno 1 ...

  9. Centos下安装apahce的configure: error: APR not found. Please read the documentation解决办法

    今天从Apache官网上http://httpd.apache.org/下载httpd web服务器,由于我的虚拟机上之前安装过,我先yum remove httpd进行卸载,然后重新安装.我采用的是 ...

最新文章

  1. effectivec++条款18,让接口容易被正确使用,不宜被吴勇
  2. 环境监控告警系统之TIM即时消息推送部署
  3. 数位dp模板 [dp][数位dp]
  4. ARM Linux 如何--注册和触发--软中断
  5. LeetCode 130. 被围绕的区域(图的BFS/DFS)
  6. php合成图片设置图片大小,php 上传图片并按比例生成指定大小图_PHP教程
  7. 关于DPM(Deformable Part Model)算法中模型结构的解释
  8. 在编写mini2440 helloworld驱动遇到的问题
  9. rust笔记9 错误处理
  10. python报告水印怎么弄_超简单Python安全批量打水印教程!
  11. Anbox之Ubuntu18.04安装(二)
  12. windows 7 动态分区转基本分区绿色工具(Conver to basic disk)
  13. yolov5标注格式归一化
  14. python求圆锥体的表面积公式_圆锥表面积公式推导-圆锥表面积的计算公式
  15. linux php muma,php实现Linux服务器木马排查及加固功能
  16. js删除某个节点之后的所有节点
  17. KSO-.NET 6 中的新增功能
  18. BUUCTF MISC刷题笔记(五)
  19. Lesson 13-14 How often do you exercise?
  20. linux查看php端口,Linux如何查看端口状态

热门文章

  1. 反汇编最基础知识(段寄存器和寄存器的说明)
  2. Shell替换:Shell变量替换,命令替换,转义字符
  3. C++ 动态内存管理:c/c++的动态内存管理,new/delete,operator new/delete,placement-new, 内存泄漏
  4. JAVA通过反射获取方法真实参数名
  5. 赠送 12 本 《C++ 服务器开发精髓》
  6. Linux IO磁盘篇整理小记
  7. 【福利解锁Part1】报名参与腾讯云专场活动,第一波干货内容免费放送
  8. 见良:学习多媒体主要靠实践
  9. Hadoop之HDFS概述
  10. 运维总监聂鑫:腾讯海量监控体系经验分享