python爬取https网站时报错ssl版本问题无法导入url

羌俊恩 社区创始人
运维领域优质创作者
博客专家认证
2023-11-10 18:04:14

一、问题描述

某次python脚本爬取某网站https地址时,程序运行报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.1.0h  27 Mar 2018'. See: https://github.com/urllib3/urllib3/issues/2168

 二、处理

Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。上述报错是因为当前的urllib3中的版本与请求所需的不匹配,当前版本过低,需要升级,执行如下安装即可:

pip3 install urllib3==1.26.15 -i https://pypi.tuna.tsinghua.edu.cn/simple

urllib 包包含了以下几个模块:

urllib.request:打开和读取 URL。
urllib.error:包含 urllib.request 抛出的异常。
urllib.parse:解析 URL。
urllib.robotparser:解析 robots.txt 文件。

各子模块用法如下:

 

 另外,正如上文脚本中代码片段,还需要引入.request,我们抓取网页一般需要对 headers(网页头信息)进行模拟,否则网页很容易判定程序为爬虫,从而禁止访问。这时候需要使用到 urllib.request.Request 类:

urllib.request 定义了一些打开 URL 的函数和类,包含授权验证、重定向、浏览器 cookies等。另外还有一个常用方法,urlopen

urllib.request 可以模拟浏览器的一个请求发起过程。

 

...全文
339 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

99,469

社区成员

发帖
与我相关
我的任务
社区描述
欢迎各位小伙伴踊跃加入,将日常运维中遇到的问题贴出来,解决方案分享出来,或自己的博客关于运维的文章分享到这里,来一起营造一个运维的知识库,以提升运维工作更加高效快捷,减少重复造车轮的无限循环。
devops经验分享开源 企业社区 北京·西城区
社区管理员
  • 羌俊恩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区:旨在推进运维云化知识库建设,为更多运维提供参考及经验交流;加入社区的同学,如果运维工作中遇到问题或最后得到解决,有劳凑空发帖,分享共建FAQ社区。

得到解决方案的同学,请积极为发帖的同学点赞、评论、能力范围内打赏激励。另外本社区采用游戏修仙角色作为鼓励,对不同贡献者授予对应“勋章”。

最后祝愿社区繁荣昌盛,此致敬礼!!!

试试用AI创作助手写篇文章吧