如何将 .netrc 文件附加到 python 请求 get 方法?

Tec*_*rry 6 python curl .netrc python-requests

我正在尝试使用 python 请求登录网站。通常我在 cmd 中使用curl 来执行此操作。

curl -c <path/urs_cookies.txt> -n -L https://site_FileUpload/login
Run Code Online (Sandbox Code Playgroud)

其中 -n 在 cwd 中搜索 .netrc 文件,其中包含我的用户名和密码。

但是在 python 中使用这样做不起作用

login = requests.get(url, auth=(username, password)) 
Run Code Online (Sandbox Code Playgroud)

我相信这是因为我需要使用我的 .netrc 文件而不是使用授权方法。

我是否可以将此文件附加到我的登录请求中?

多谢

Mic*_*ges 9

如果您的 .netrc 文件存在于您的主目录中,则当未提供 auth 参数时,python requests 将自动检查该文件以获取给定计算机(主机名)下的凭据。

\n

来自请求文档:https://requests.readthedocs.io/en/latest/user/authentication/ ?highlight=.netrc#netrc-authentication

\n
\n

如果 auth 参数没有给出身份验证方法,Requests 将尝试从 user\xe2\x80\x99s netrc 文件中获取 URL\xe2\x80\x99s 主机名的身份验证凭据。netrc 文件覆盖使用 headers= 设置的原始 HTTP 身份验证标头。

\n
\n
\n

如果找到主机名的凭据,则会使用 HTTP 基本身份验证发送请求。

\n
\n

假设您的主目录中有有效的 .netrc 文件,以下内容应该可以工作。https://www.labkey.org/Documentation/wiki-page.view?name=netrc

\n
login = requests.get(url)\n
Run Code Online (Sandbox Code Playgroud)\n