python - 如何使用 Python 将 .htm 文件通过管道传输到网站

标签 python html

我有一个文件,gather.htm这是一个带有 header/body 的有效 HTML 文件和 forms .如果我双击桌面上的文件,它会在网络浏览器中正确打开,自动提交 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

请注意,在上面的第二个示例中,webbrowser.open()调用工作正常,但 requests.post才不是。

看来我尝试的所有操作都以同样的方式失败了 - 打开 URL 并且页面返回默认数据。该网站似乎从未收到 gather.htm文件。

最佳答案

由于您的请求返回 200 OK,因此将您的发布请求发送到服务器没有任何问题。很难给你一个确切的答案,但问题在于服务器如何处理请求。您的发布请求的格式可能是服务器无法识别的,或者服务器根本没有设置为处理它们。如果您自己管理网站,一些额外的详细信息会有所帮助。

作为最后的检查,请尝试以下操作:

r = requests.post(url=myUrl, data={'title':'test_file', 'file':f})

关于python - 如何使用 Python 将 .htm 文件通过管道传输到网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25576367/

相关文章:

Python 子模块更简单的引用

javascript - 调整动态创建的图像大小的CSS代码

javascript - 选择并聚焦 <a> 标签中的文本

HTML5/CSS3 正确排列元素

python - 计算字典键的总和

python - 如何从手绘电路的扫描图像中检测逻辑门?

python - 使用变量作为名称实例化一个类

python - 在一个函数中支持 xarray、dask 和 numpy 数组的最简洁方法

PHP 表单消息

html - 如何在 masonry 网格中居中图像?