在需要cookie和.netrc文件的地方,如何使用python请求/curl登录和上载?

2024-04-29 02:23:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试自动化一个文件上传系统,在这个系统中,我必须手动在CMD中输入两个命令,使用curl将文件上传到特定站点。第一个命令是:

curl -c <path/urs_cookies.txt> -n -L https://site_FileUpload/login

(n在包含我的用户名和密码的cwd中搜索my.netrc文件。)

服务器响应:“欢迎上传文件”

然后我进去

curl -X POST -b <urs_cookie_file> 
-F "file[]=@file"  https://site_FileUpload/upload/

首先,我尝试使用操作系统模块

os.system('cmd /k "curl -c...."') 

服务器响应“欢迎使用站点文件上载” 但是,第二行代码从不执行

os.system('cmd /k "curl -X POST...") 

测试后,第一个命令之后的任何代码也不会执行。e、 g打印(“你好”)

接下来,我尝试使用python请求模块

import requests
s = requests.Session()     # to store cookies
login = requests.get(url, auth=(username, password))
print(login)

这导致<;答复[200]>;哪个应该成功,对吗

然而,如果我打印(login.content.decode()),我会收到大量的html乱码,而不是预期的结果

“欢迎上传文件”,这对我来说意味着登录不成功

我相信这是因为我没有使用包含用户名和密码的.netrc文件。阅读.netrc上的请求文档一点帮助都没有,所以我想知道是否有人可以帮忙?非常感谢


Tags: 文件https命令站点系统sitelogincurl