Crossin的编程教室

标题: 弱弱的问一句:request.urlopen加不加urllib前缀什么区别 [打印本页]

作者: 小可爱    时间: 2018-2-17 12:55
标题: 弱弱的问一句:request.urlopen加不加urllib前缀什么区别
两个问题,如下
request.Request与urllib.request.Request什么区别
request.urlopen与urllib.request.urlopen什么区别
心里一直默认他们的没区别的.....今天发现两个好像不能相互替代,那区别是啥?=-=
例如代码为:
# -*- coding: UTF-8 -*-
from urllib import request

if __name__ == "__main__":
    req = request.Request("http://fanyi.baidu.com/")
    response = request.urlopen(req)
    print("geturl打印信息:%s"%(response.geturl()))
    print('**********************************************')
    print("info打印信息:%s"%(response.info()))
    print('**********************************************')
    print("getcode打印信息:%s"%(response.getcode()))
输出会为:
geturl打印信息:http://fanyi.baidu.com/
**********************************************
info打印信息:Content-Type: text/html
Date: Sat, 17 Feb 2018 04:46:23 GMT
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Server: Apache
Set-Cookie: locale=zh; expires=Fri, 14-Dec-2018 04:46:23 GMT; path=/; domain=.baidu.com
Set-Cookie: BAIDUID=F45F8D5AA1B38BB7982C05CEDC72289B:FG=1; expires=Sun, 17-Feb-19 04:46:23 GMT; max-age=31536000; path=/; domain=.baidu.com; version=1
Vary: Accept-Encoding
Connection: close
Transfer-Encoding: chunked


**********************************************
getcode打印信息:200
[Finished in 0.5s]
这个没问题,然后我发现加上一个urllib前缀就不对了,即变为如下:
# -*- coding: UTF-8 -*-
from urllib import request

if __name__ == "__main__":
    req = urllib.request.Request("http://fanyi.baidu.com/")#就这里变了
    response = urllib.request.urlopen(req)#就这里变了
    print("geturl打印信息:%s"%(response.geturl()))
    print('**********************************************')
    print("info打印信息:%s"%(response.info()))
    print('**********************************************')
    print("getcode打印信息:%s"%(response.getcode()))
运行会报错:
Traceback (most recent call last):
  File "D:\Documents\sublime\pachong\55.py", line 5, in <module>
    req = urllib.request.Request("http://fanyi.baidu.com/")
NameError: name 'urllib' is not defined
[Finished in 0.3s]
=-=不是导入了urllib.request吗,为什么说not defined?
=-=弱弱的问一句,到底是什么导致了他们不同?



作者: crossin先生    时间: 2018-2-17 20:42
import urllib.request

你没有import过urllib
作者: 小可爱    时间: 2018-2-18 16:45
crossin先生 发表于 2018-2-17 20:42
import urllib.request

你没有import过urllib

哦哦,我明白了:from urllib import request仅仅是调用了request,所不能urllib.request,而import urllib.request在用时则是urllib.request表urllib包里的request的函数=-=原来是这样




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5