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