Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在python+selenium中上载文件。继续获取[{“error”:true,“error\u msg”:“身份验证失败”}]_Python_Selenium_Webdriver - Fatal编程技术网

无法在python+selenium中上载文件。继续获取[{“error”:true,“error\u msg”:“身份验证失败”}]

无法在python+selenium中上载文件。继续获取[{“error”:true,“error\u msg”:“身份验证失败”}],python,selenium,webdriver,Python,Selenium,Webdriver,我很自大,不能再往前走了。相信我,我已经在网上寻找了一个具体的解决方案,但都是徒劳的! 我有一个应用程序justcloud.com,我需要上传一个文件,并验证是否上传了。 在我登录到此应用程序并到达我有按钮选择要上载的文件的页面后,以下是我的代码: 我每次都会收到的错误是[{error:true,error\u msg:Authentication Failed}] 我知道我只需要模拟实际的文件上传过程,这只是对服务器的HTTP POST请求,其中还包括一些我需要克服的身份验证 我的假设是coo

我很自大,不能再往前走了。相信我,我已经在网上寻找了一个具体的解决方案,但都是徒劳的! 我有一个应用程序justcloud.com,我需要上传一个文件,并验证是否上传了。 在我登录到此应用程序并到达我有按钮选择要上载的文件的页面后,以下是我的代码:

我每次都会收到的错误是[{error:true,error\u msg:Authentication Failed}]

我知道我只需要模拟实际的文件上传过程,这只是对服务器的HTTP POST请求,其中还包括一些我需要克服的身份验证

我的假设是cookies可以帮助我解决这个身份验证问题,但我不确定,我也不知道如何在python代码中包含它。任何示例代码都会很有帮助。 我请求任何读到这篇文章的人帮助我


这不是我第一次在stackoverflow上发布这个问题,但是我没有得到太多的帮助。我还在尝试。无论如何,谢谢…

错误消息会准确地告诉您问题所在。您需要先登录该网站,然后才能将文件发布到该URL

您需要以某种方式获取已登录的会话cookie。通常,当您发布到登录表单URL时,您将收到包含此cookie的http响应。然后,每次发出另一个请求时,您都会将cookie与每个请求一起发送,以便站点知道您已通过身份验证

您将如何登录到backupgrid?找到相应的URL,登录,从响应中获取cookie,然后将其包含在您的请求中


对如何向请求中添加cookie提供了很好的解释

你为什么用selenium和webdriver标记这篇文章?虽然我知道这个问题可以用python解决,但我只是想确保任何有同样问题的人都能很容易地找到这个问题。。。我可能听起来很傻,但那正是我所想的……谢谢你的回答!说到饼干,我有点天真。这就是为什么我在上面的问题中提到cookies可能是解决我的身份验证问题的答案。只是我不知道如何实现它们。此外,我在上面的帖子中有一些疑问:我不知道如何登录backupgrid。我从DOM中找到了这个URL我如何找到备份网格URL的用户名和密码?嗯。。。我想你是在开账户吧?我真的很困惑你现在想做什么。你为什么要把文件上传到一个你一无所知的地方?我有一个叫做justcloud.com的网站。我有一个帐号,用户名=u,密码=p。我登录到这个网站并导航到一个页面,在那里我有一个名为“选择文件”的按钮来上传文件。您在上述代码中看到的backupgrid URL可能是远程服务器的URL。这是我需要上传文件的地方,这是我的假设。但是我如何知道这个服务器的用户名或密码呢?使用requests模块,这里有一个示例代码&它在控制台上打印的内容是:import requests url=https://upload.backupgrid.net/add fileToUpload={'file':open'/home/pinku/Desktop/Test_Upload.odt','rb'}res=requests.postrl,fileToUpload print res.cookies控制台中的输出是我看到2个cookies.Rite?我应该选哪一个?
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2

register_openers()
fileToUpload = {'files[]':open('/home/pinku/Desktop/Test_Upload.odt', 'rb')}
datagen, headers = multipart_encode(fileToUpload)
url = "https://upload.backupgrid.net/add"
request = urllib2.Request(url, datagen, headers)
print urllib2.urlopen(request).read()