当前位置: 首页 > 知识库问答 >
问题:

Python 3: urllib模块基本函数不起作用

韦安顺
2023-03-14

我是一个新的python开发人员,我在YouTube上看了一些教程,解释了这个模块的功能和用途,但我无法让它工作。我通过 pip 安装了模块,所以我认为这不是问题所在。

import urllib.request

x = urllib.request.urlopen('https://www.google.com')

print(x.read())

输出:

回溯(最近一次调用):文件“/Library/Frameworks/Python.Frameworks/Versions/3.9/lib/python3.9/urllib/request.py”,第1342行,do_open h.request(req.get_method(),req.selector,req.data,headers,文件“/Llibrary/Framworks/Python.Frameworks/Versions/3.9/lib/ppython3.9/http/client.py”第1255行,在request self._send_request(method,url,body,headers,encode_chunked)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py”的第1301行,在_send_resquest self.endheaders(body,encode_chunked=encode_chunked)的文件“/Llibrary/Framworks/Python.Frameworks/Versions=3.9/lib/python3.9/http/client.py”,第1250行,在endheaders self._send_output(message_body,encode_chunked=encode_chonked)文件“/Library/Frameworks/Python.Frameworks/Versions/3.9/lib/python3.9/http/client.py”的第1010行,在_send_output self.send(msg)文件“/Library/Fromeworks/Python.framework/Versions=3.9/lib/python3.9/http/client.py”中的第950行,在send-self.connect()文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py”中,第1424行,在connect self.sock=self._context.wrap_socket(self.sock,文件“/Library/Frameworks/Python.Frameworks/Versions/3.9/lib/python3.9/ssl.py”,第500行,在wrap_socket中返回self.ssslsocket_class.create(文件“/Llibrary/Framworks/Python.framework/Versions/1.9/lib/python3.9/ssl.py),第1040行,在_create self.do_handshake()文件“/LLibrary/Framemworks/Pyhon.frame/Versions=3.9/lib/python3.9/ssl.py”,第1309行,do_handshake self.sslobj.do_handsharke()ssl.SSLCertVerificationError:[ssl:CERTIFICE_VERIFY_FAILED]证书验证失败:无法获取本地颁发者证书(_ssl.c:1122)

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用):文件“/Users/mike/PycharmProjects/urllib/main.py”,第8行,在x=urllib.request.urlopen('https://www.google.com')文件“/Library/Frameworks/Python.Frameworks/Versions/3.9/lib/python3.9/urllib/request.py”,第214行,位于urlopen返回开启器中。open(url,data,timeout)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py”,第517行,open-response=self_打开(req,data)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py”,第534行,in_open result=self._call_chain(self.handle_open,协议,协议文件“/Library/Frameworks/Python.Frameworks/Versions/3.9/lib/python3.9/urllib/request.py”,第494行,in_call_cchain result=func(*args)文件“/Llibrary/Framworks/Python.framework/Versions/1.9/lib/python3.9/urllib/request/py”,1385行,在https_open return self.do_open(http.client.HTTPSConnection,req,文件“/Library/Frameworks/Python.Frameworks/Versions/3.9/lib/python3.9/urllib/request.py”,第1345行,在do_open中引发URLError(err)urllib.error.URLError:

进程完成,退出代码1

共有2个答案

萧阳波
2023-03-14

抓取:http://en.wikipedia.org的SSL: CERTIFICATE_VERIFY_FAILED错误

找到解决方案:在python 3.9文件夹中安装“安装Certificates.command”

沈宏朗
2023-03-14

似乎是SSL证书错误。

可能您的电脑上有一个程序正在阻止SSL证书。

 类似资料:
  • 我试图从书中创建一个简单的servlet,但没有用。 我使用GlassFish服务器开源版本3.1.2.2、jdk1.7.0_10和记事本。 root\WEB-INF\classes\net\ensode\glassfishbook\formhandling\FormHandlerServlet.class : root/web.xml: root/dataentry.html: 我在控制台中通过

  • 因为Node.js是运行在服务区端的JavaScript环境,服务器程序和浏览器程序相比,最大的特点是没有浏览器的安全限制了,而且,服务器程序必须能接收网络请求,读写文件,处理二进制内容,所以,Node.js内置的常用模块就是为了实现基本的服务器功能。这些模块在浏览器环境中是无法被执行的,因为它们的底层代码是用C/C++在Node.js运行环境中实现的。 global 在前面的JavaScript

  • 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。 为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 pyth

  • 问题内容: 嗨,我尝试在POST请求中尝试PHPPost请求,认为这可能对我有用,下面给出了我的代码 形成index.php文件,而index2.php是同一目录中的另一个文件,当我打开页面时,我的error.log文件中出现以下错误 我想要做的是我有一个发送发帖请求的预订表格,然后我想处理发帖值并再次将发帖请求发送到贝宝 问题答案: 您需要为php安装CURL支持。 在Ubuntu中,您可以通过

  • 问题内容: Oracle-函数不起作用 所以我不知道我在做什么错。我已经花了几个小时了,非常感谢您的帮助。 因此,基本上我有2个表,一个表被称为主列表,它是一个学生列表,另一个表被调用,它基本上具有该学生所注册课程的列表。 因此,我编写了一个函数,用于将登录学生的用户名(在本例中为)与学生列表进行比较,并确保登录用户是学生。然后,它将与表进行比较,以查找用户注册的任何程序。因此,从本质上讲,当我(

  • 问题内容: 我是Socket.IO的100%新手,并且刚刚安装了它。我试图遵循一些示例,并且可以使服务器端运行,但似乎无法使客户端连接。 以下是我的server.js: 这是我的index.html 当我执行node server.js时,它指示socket.io已启动。 当我加载index.html时,出现一行,指出“调试-服务静态/socket.io.js”,但除此之外,没有控制台消息或其他行