我想编写一个Python程序来自动填充网页表单。在搜索很多时,我发现这个代码。Python中'urlretrieve'函数的属性是什么?
import urllib urllib.urlretrieve("http://www.google.com/", "somefile.html", lambda x,y,z:0, urllib.urlencode({"username": "xxx", "password": "pass"}))
此功能需要花费很多的争论。你能解释一下每个论点的含义吗?
我想编写一个Python程序来自动填充网页表单。在搜索很多时,我发现这个代码。Python中'urlretrieve'函数的属性是什么?
import urllib urllib.urlretrieve("http://www.google.com/", "somefile.html", lambda x,y,z:0, urllib.urlencode({"username": "xxx", "password": "pass"}))
此功能需要花费很多的争论。你能解释一下每个论点的含义吗?
如果我们看看official Python documentation for urllib.urlretrieve
,我们得到了一个很好的解释:
复制,通过URL表示到本地文件的网络对象,如果必要的。 如果URL指向本地文件,或存在对象的有效缓存副本,则不会复制该对象。返回的元组
(filename, headers)
其中filename
是在其下对象 可以发现本地文件名,和headers
是任何由urlopen()
返回的对象 的info()
方法返回(远程对象,可能缓存)。 例外情况与urlopen()
相同。第二个参数(如果存在)指定将 复制到(如果不存在,该位置将是具有生成名称的临时文件)的文件位置。 第三个参数(如果存在)是一个挂钩函数,一旦建立网络连接,将调用 ,并且在每个 块之后读取一次。该钩子将传递三个参数;一个 到目前为止传输的块的数量,块大小(以字节为单位)以及该文件的总大小 。在较旧的FTP 服务器上,第三个参数可能为-1,因为检索 请求时不返回文件大小。
如果url使用http:方案标识符,可选的数据 参数可被给予以指定
POST
请求(通常是请求 类型是GET
)。数据参数必须以标准 application/x-www-form-urlencoded格式;请参阅下面的urlencode()
功能 。更改版本2.5:
urlretrieve()
将提高ContentTooShortError
当它检测到可用的数据的量小于所述 预期量(它是由内容长度报头 报告的大小)。例如,这可能发生在下载中断时 。内容长度被视为一个下界:如果有更多的数据 阅读,
urlretrieve()
读取更多的数据,但如果较少的数据是可用的, 它引发异常。在这种情况下,您仍然可以检索下载的数据,它将 存储在异常实例的内容属性中。
如果没有提供Content-Length标头,
urlretrieve()
不能检查其下载的数据的大小,并且只是返回它。在这个 的情况下,你只需要假定下载成功。
顺便说一下,它们被称为参数或参数,而不是属性。
阅读文档https://docs.python.org/2/library/urllib.html –