我想用python编写一个下载程序,并且我使用PycURL作为我的库,但是遇到了问题。
我无法获取要下载的文件大小。这是我的代码的一部分:

import pycurl
url = 'http://www.google.com'
c = pycurl.Curl()
c.setopt(c.URL, url)
print c.getinfo(c.CONTENT_LENGTH_DOWNLOAD)
c.perform()


当我在python shell中测试此代码时,可以,但是当我将其编写为函数并运行时,它的大小为-1。
问题是什么?

(代码已被编辑)

最佳答案

从Curl对象的pycurl文档中:


  除非已调用perform,否则不应调用getinfo方法。
  并完成。


您在呼叫getinfo之前先呼叫perform

这是您的示例的简化版本,这行得通吗?

import pycurl

url = 'http://www.google.com'
c = pycurl.Curl()
c.setopt(c.URL, url)
c.perform()
print c.getinfo(c.CONTENT_LENGTH_DOWNLOAD)


您应该看到HTML内容,然后是大小。

关于python - 用pycurl获取文件大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12514768/

10-12 20:24