已解决(Python3中urllib请求网页报错)
request = urllib.request.Request(url, headers=headers)
AttributeError: module ‘urllib’ has no attribute ‘request’
报错代码
我的Python版本3.8,想用urllib库请求访问百度,报错代码如下:
import urllib
url = "https://www.baidu.com"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0'}
request = urllib.request.Request(url, headers=headers)
html = urllib.request.urlopen(request).read()
print(html)
报错信息:可以看到两个request高亮着说明有问题
果然运行后报错了:
Traceback (most recent call last):
File "E:/Python学习/1.py", line 5, in <module>
request = urllib.request.Request(url, headers=headers)
AttributeError: module 'urllib' has no attribute 'request'
报错翻译
报错内容翻译:
属性错误: 模块“urllib”没有属性“request”
报错原因
Python中出现AttributeError的错误主要有两类原因:
- 1. 没有引入对应正确的包
- 2. 工程目录中存在同名文件
我的代码报错具体原因:查了一下资料是 python3 的 urllib 不会自动导入其under层的包,需要手动导入。
解决方法
在Python3中手动导入request包,import urllib.request
就解决错误,修改代码:
import urllib
import urllib.request
url = "https://www.baidu.com"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0'}
request = urllib.request.Request(url, headers=headers)
html = urllib.request.urlopen(request).read()
print(html)
之前代码中的两个request高亮部分消失了:
运行成功:
以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果有用欢迎点赞收藏文章谢谢支持,博主才有动力持续记录遇到的问题!!!
千人全栈VIP答疑群联系博主帮忙解决报错
由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
-
优点:作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!
-
专栏福利:简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
-
注意:如果希望得到及时回复,订阅专栏后私信博主进千人VIP答疑群