【发布时间】:2010-10-12 13:35:51
【问题描述】:
我正在尝试使用 Python 脚本使用 Hot Banana 的内容管理系统将 PDF 文件上传到网站。我已成功登录该站点并可以注销,但我似乎无法正常上传文件。
文件上传是大型复杂网络表单的一部分,该表单通过 POST 提交表单数据和 PDF 文件。使用 Firefox 以及 Firebug 和 Tamper Data 扩展,我查看了浏览器在 POST 中发送的内容以及它的去向。我相信我模仿了浏览器在代码中发送的数据,但我仍然遇到问题。
我正在导入 cookielib 来处理 cookie、poster 来编码 PDF,以及 urllib 和 urllib2 来构建请求并将其发送到 URL。
注册海报开瓶器是否会破坏 cookie 处理器开瓶器?我这样做完全错了吗?
编辑:调试进程的好方法是什么?目前,我只是将 urllib2 响应转储到一个文本文件并检查输出以查看它是否与我手动上传文件时得到的匹配。
编辑 2:Chris Lively 建议我发布我遇到的错误。来自 urllib2 的响应不会产生异常,只是返回:
<script>
if (parent != window) {
parent.document.location.reload();
} else {
parent.document.location = 'login.cfm';
}
</script>
我会坚持下去的。
【问题讨论】:
-
如果您发布收到的错误可能会有所帮助。
-
当我回到办公室时,我将编辑我的帖子,其中包含错误。
-
这是一个授权问题——我认为,您将通过 javascript 重定向到登录。
-
@S.Lott:如果是授权问题,那就意味着我的 cookie 搞砸了。对吗?
-
@afrosteve:通常。但也可能是您的 URL 错误,并且网站将您重定向到登录。或者,网站希望在查询字符串(“?sessionid=098qwe0r980qwe89r0q”)中找到您的会话 ID,或者 POST 中需要隐藏字段。
标签: python post upload urllib2