urllib2.urlopen(theurl).read() ...这会下载文件。
urllib2.urlopen(theurl).geturl() ...这会下载文件吗? (需要多长时间)
答案 0 :(得分:5)
geturl()方法返回实数 页面的URL。在某些情况下, HTTP服务器将客户端重定向到 另一个网址。 urlopen()函数 处理这个透明,但在 有些情况下,来电者需要知道 客户端被重定向到哪个URL 至。 geturl()方法可用于 获取此重定向的网址。
答案 1 :(得分:4)
使用Wireshark和Python 2.5进行测试:urllib2.urlopen(theurl).geturl()
下载正文的部分。它发出GET
,读取标题和身体的几个K,然后停止。
答案 2 :(得分: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
答案 3 :(得分:2)
urllib2.urlopen()返回一个像object这样的文件,这样当你使用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")
希望有所帮助;)
答案 4 :(得分: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'
>>>