我试图使用python请求登录到一个网站。通常我在cmd中使用curl。
curl -c <path/urs_cookies.txt> -n -L https://site_FileUpload/login
字符串
其中-n在cwd中搜索包含我的用户名和密码的.netrc文件。
但是在python中使用这样做是不起作用的。
login = requests.get(url, auth=(username, password))
型
我相信这是因为我需要使用我的.netrc文件,而不是使用授权方法。
我可以将此文件附加到我的登录请求中吗?
非常感谢
2条答案
按热度按时间xa9qqrwz1#
如果你的.netrc文件存在于你的主目录中,当没有提供auth参数时,python请求将自动检查该文件在给定机器(主机名)下的凭据。
来自请求文档:https://requests.readthedocs.io/en/latest/user/authentication/?highlight=.netrc#netrc-authentication
如果auth参数中没有提供身份验证方法,则Requests将尝试从用户的netrc文件中获取URL主机名的身份验证凭据。netrc文件将覆盖设置为headers=的原始HTTP身份验证标头。
如果找到主机名的凭据,则使用HTTP Basic Auth发送请求。
假设您的主目录中有一个有效的.netrc文件,下面的操作应该可以正常工作。https://www.labkey.org/Documentation/wiki-page.view?name=netrc
字符串
7lrncoxx2#
通过python请求库请求时不需要传递.netrc文件。唯一的要求是
.netrc
文件应该在您的主目录中。我曾经通过python触发一个数据库作业,它需要.netrc
文件中的所有凭据。我只是使用requests.post(url, data)
并将我的.netrc
文件保存在主目录中,它就可以工作了。