我正在尝试在Python脚本中复制wget命令。 wget命令沿着以下几行:
wget --user user --password pass http://serveraddress/
仅供参考,正如您所猜测的那样,这是一种强制性的简单身份验证。系统会提示您输入用户名和密码的弹出窗体。因此,除非您输入凭据,否则无法访问该地址
在我的脚本中,我提示用户输入他的用户名和密码,然后存储它们。到目前为止,一切都有道理然而,在此之后我真的很困惑。
原因是我在Web上阅读了两个不同的东西,实际上在Python Essential Reference中有关urllib2.urlopen()的内容(仅供参考,我必须只使用标准库;因此请求不是我的选项)。
因此,PER说“基本urlopen()函数不支持HTTP的身份验证,cookie或其他高级功能。要添加支持,必须使用build_opener()函数创建自己的自定义开启对象。“
其他人,例如here,表示您需要创建一个Request对象并向其添加标头。
那么,我在这里错过了什么?任何帮助都非常感激。
答案 0 :(得分:2)
使用requests
包。事实上,你的问题是他们在他们的文档中引用的第一个例子:
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
但是,如果您绝对不能使用requests
,作者会方便地描述如何使用urllib2
中的等效功能。转到requests
documentation page,点击“查看similar code, without Requests”,然后从那里窃取urllib2代码。