You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手开发web爬虫运行时报urlib3模块找不到错误求助

报错原因与对应解决方法

触发当前报错的核心问题

  • import语句的模块名称拼写错误:代码中写的import urlib3漏写了字母r,正确的已安装模块名是urllib3。这是当前ModuleNotFoundError的直接诱因:Python执行导入时,会严格按照你写的模块名寻找名为urlib3的包,自然会触发找不到模块的报错,和你环境中是否安装了urllib3没有关系——因为你要找的根本不是同一个模块名。
  • 代码存在后续的API调用错位:就算修正了import的拼写问题,后面的urllib.urlopen("http://www.google.com/")依然会触发报错:
    1. 这段代码调用的urllib是Python内置标准库,你既没有在脚本里导入这个模块,也没有把它和你前面导入的第三方urllib3做关联,会直接触发未定义名称的报错
    2. Python3版本已经将原urllib的功能拆分到多个子模块中,原本Python2时代直接调用的urllib.urlopen方法已经被移到urllib.request模块下,已经无法像旧版本一样直接调用。

修正后的参考实现

如果使用已安装的第三方urllib3发起请求,参考代码结构如下:

#!/usr/bin/env python3
# 导入第三方依赖
import urllib3
from bs4 import BeautifulSoup
import csv
# 初始化请求管理器
http_client = urllib3.PoolManager()
# 发起请求
response = http_client.request("GET", "http://www.google.com/")
# 读取响应内容
html_text = response.data.decode("utf-8")

如果选择使用Python自带的内置urllib标准库发请求,不需要额外安装第三方包,按Python3的导入规则写即可:

#!/usr/bin/env python3
from urllib.request import urlopen
resp = urlopen("http://www.google.com/")
html_text = resp.read().decode("utf-8")

额外注意区分

  • 第三方库urllib3和Python内置标准库urllib是两个完全独立的工具,不要混淆导入和调用逻辑:
    • urllib3需要通过pip安装,功能更完善,是目前常用的第三方请求工具
    • urllib是Python自带的标准库,不需要额外安装,需要按子模块路径导入后调用。

内容的提问来源于stack exchange,提问作者Lien Lien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 03:36:07