为了账号安全,请及时绑定邮箱和手机立即绑定

Python Http 请求在 Pycharm IDE 中不起作用

Python Http 请求在 Pycharm IDE 中不起作用

子衿沉夜 2022-10-25 16:08:25
我在这里有点疯狂,觉得我一定错过了一些明显的东西。我正在尝试使用 python 和 urllib3 从网站上抓取数据。我的代码看起来像>>> import urllib3>>> from bs4 import BeautifulSoup>>>>>> http = urllib3.PoolManager()>>> url = 'https://www.google.com/'>>> r = http.request('GET', url)>>> data = BeautifulSoup(r.data)如果我打开我的终端(我在 Mac 上),激活我的 conda 虚拟环境,然后启动 python 解释器,此代码完全按预期工作,拉下 html 请求并解析数据。当我将代码放入我的 Python IDE 并将其设置为完全相同的虚拟环境时,HTTP 获取请求失败并且我收到以下错误{MaxRetryError}HTTPSConnectionPool(host='www.nts.live', port=443): Max retries exceeded with url: /api/v2/shows/powell/episodes?offset=0&limit=12 (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),)) 我过去曾在 Pycharm 中做过类似的请求,所以这绝对是某个阶段的用户错误。除了我的虚拟环境相同之外,我不确定我应该检查什么?我尝试了多个不同的链接,但问题仍然存在。任何关于为什么会出现此错误的想法将不胜感激!
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

此错误不是来自 IDE,而是使用模块中的代码和其他检索 http 请求的方法。以上内容存在于我的data_pull.py文件中,但是我spotify_request.py还导入了另一个文件。而不是 urllib3,这个文件使用import requeststhen requests.get(url).

当我在终端中独立运行代码时,从未执行过第二次导入,并且代码运行顺利。为了解决这个问题,我用请求库( https://pypi.org/project/requests/ )替换了所有 urllib3 获取请求。我还通过使所有请求都使用 urllib3 进行了测试,并且代码也运行良好。我不确定为什么同时使用两者都不起作用,但这已经解决了我的错误。

TLDR;我无法同时使用 urllib3 和我的包中的 http 调用请求 - 坚持一个!


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信