我有一个文件,gather.htm
是一个有效的HTML文件,其中包含header/body
和forms
。如果我双击桌面上的文件,它将在web浏览器中正确打开,自动提交form
数据(通过<SCRIPT LANGUAGE="Javascript">document.forms[2].submit();</SCRIPT>
),页面将用请求的数据刷新。
我想让Python使用requests.post(url)
进行gather.htm
调用。然而,我的研究和我的跟踪和错误并没有提供解决方案。
这是怎么做到的?
我尝试过这些方法(基于网络上的例子)。我怀疑我遗漏了一些简单的东西!
myUrl = 'www.somewhere.com'
filename='/Users/John/Desktop/gather.htm'
f = open (filename)
r = requests.post(url=myUrl, data = {'title':'test_file'}, files = {'file':f})
print r.status_code
print r.text
以及:
htmfile = 'file:///Users/John/Desktop/gather.htm'
files = {'file':open('gather.htm')}
webbrowser.open(url,new=2)
response = requests.post(url)
print response.text
注意,在上面的第2个示例中,
webbrowser.open()
调用工作正常,但requests.post
调用不正常。似乎我尝试的所有操作都以同样的方式失败了-URL被打开,页面返回默认数据。似乎网站从未收到
gather.htm
文件。 最佳答案
由于您的请求返回200 OK
,因此将post请求发送到服务器没有任何错误。很难给出确切的答案,但问题在于服务器如何处理请求。您的post请求的格式可能是服务器无法识别的,或者服务器根本没有设置为处理这些请求。如果你是自己管理网站,一些额外的细节会有帮助。
作为最终检查,请尝试以下操作:
r = requests.post(url=myUrl, data={'title':'test_file', 'file':f})
关于python - 如何使用Python将.htm文件通过管道传输到网站,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25576367/