所以,我需要为我上传的视频设置标签,但我无法让它工作。 这是标签形式:
<input id="video_keywords" class="ui-autocomplete-input" type="text" onchange="checkTags()" onkeyup="checkTags()" size="72" name="keywords" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">
到目前为止,这是我的代码:
payload = {
'keywords': 'tag1 tag2 tag3',
'APC_UPLOAD_PROGRESS': apc,
'message' : '',
}
files = {'upload_file' : (open("D:\\CPA\\videos\\watermarked\\test.avi", 'rb'))}
url = 'http://upload.site.com/account/uploads/submit?video_type=other'
r = s.post(url,data = payload,files = files,headers = headers)
我尝试了很多不同的东西,将标签格式化为列表,有或没有空格,我尝试将字符串编码为json,网站仍然返回标签需要提交的消息。 任何人都知道我做错了什么?
另外,在浏览器中检查http标头/请求时,我注意到每当我输入标签时,我都会收到来自网站的GET请求,如下所示:
GET /account/title_blacklist/?title=tag1%20tag2
(也许这很有用?)
答案 0 :(得分:1)
有各种各样的潜在原因,这是不起作用的,但这里没有足够的信息来确定原因。以下是几个可能的原因:
checkTags()
Javascript函数正在对标记执行某种验证。从您展示的GET请求来看,它正在为服务器做一些AJAX,并且它可能正在寻找列入黑名单的标签。或者,它可能只是将它们发送到服务器以使其格式“验证”(不太可能)。为了对此进行测试,我尝试使用对该URL的一些GET请求,在GET参数中添加不同的标记。通过查看出来的内容,您可以更好地了解允许发送的标签。您也可以尝试使用浏览器的开发人员工具(如Chrome's)在发送到此表单时查看POST数据。通过检查网页在开发人员工具中发送的请求,以及检查<form>
的整个来源,而不仅仅是特定的<input>
,可以检查所有这些可能性。希望这有帮助!
答案 1 :(得分:0)
我解决了这个问题。 实际上这个表单应该用'tags'来调用,而不是用它的名字来调用。 这有点奇怪,但它现在已经解决了。