0

urllib2.urlopen(theurl).read() ...这会下载文件。

urllib2.urlopen(theurl).geturl() ...这会下载文件吗?(多久时间)

4

5 回答 5

5

文档中:

geturl() 方法返回页面的真实 URL。在某些情况下,HTTP 服务器会将客户端重定向到另一个 URL。urlopen() 函数透明地处理这个问题,但在某些情况下,调用者需要知道客户端被重定向到哪个 URL。geturl() 方法可用于获取此重定向 URL。

于 2009-12-13T09:00:25.827 回答
4

使用Wireshark和 Python 2.5 测试:urllib2.urlopen(theurl).geturl()下载部分正文。它发出 a GET,读取标题和正文的几个 K,然后停止。

于 2009-12-13T09:04:12.190 回答
3

它不是。对我来说,在 google.com 上进行测试:

x= time.time(); urllib2.urlopen("http://www.google.com").read(); print time.time()-x
0.166881084442

x= time.time(); urllib2.urlopen("http://www.google.com").geturl(); print time.time()-x
0.0772399902344
于 2009-12-13T09:02:44.480 回答
2

urllib2.urlopen() 返回一个类似对象的文件,因此当使用 urlopen() 时,您实际上是在下载文档,并将其加载到您机器的内存中,您可以使用文件函数来读写您的文件,就像这样......

#将 python.org 存储到本地文件 d:\python.org.html

from urllib2 import urlopen
doc = urlopen("http://www.python.org")
html=doc.read( )
f=open("d:/python.org.html","w+")
f.write(html)
f.close()

或者简单地使用 urllib

import urllib
urllib.urlretrieve("http://www.python.org","d:/python.org.html")

希望有帮助;)

于 2009-12-13T13:01:01.913 回答
1

不,geturl() 返回 url。

例如; urllib2.urlopen("http://www.python.org").geturl()返回字符串“ http://www.python.org ”。

你可以在 python 交互式 shell 中很容易地找到这类东西,例如;

$ python
Python 2.4.3 (#1, Jul 27 2009, 17:57:39)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> u = urllib2.urlopen("http://www.python.org")
>>> u.geturl()
'http://www.python.org'
>>>
于 2009-12-13T09:00:54.673 回答