javascript - Python 提交带有请求的标签

标签 javascript python html tags python-requests

所以,我需要为我上传的视频设置标签,但我无法让它工作。 这是标签形式:

<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 header /请求时,我注意到每当我键入标签时,我都会收到来自该站点的 GET 请求,如下所示:
GET/account/title_blacklist/?title=tag1%20tag2(也许这有用?)

最佳答案

这不起作用的潜在原因有很多,但这里没有足够的信息来确定原因。以下是几个可能的原因:

  • 最有可能的是 checkTags() Javascript 函数正在对标签执行某种验证。从您显示的 GET 请求来看,它正在对服务器执行一些 AJAX,并且它可能正在寻找列入黑名单的标签。或者,它可能只是将它们发送到服务器以“验证”它们的格式(不太可能)。为了对此进行测试,我会尝试对那个 URL 进行一些 GET 请求,在 GET 参数中放置不同的标签。通过查看结果,您可能会更好地了解允许发送哪些标签。您也可以尝试使用浏览器的开发人员工具(例如 Chrome's )在将 POST 数据发送到此表单时查看它。
  • 也有可能是某种 CSRF形式中的 token 。服务器在发送表单时会生成这样一个 token ,并在之后的一小段时间内有效。它与表单数据一起发送回服务器。服务器将在收到表单时检查 token 的有效性。它的存在是为了防止其他人(尤其是恶意网站)向他们的表单提交表单数据。可能是出于安全原因,服务器不会在其响应中提及 CSRF token ,而是说标签是错误的原因。

所有这些可能性都可以通过检查网页在开发者工具中发送的请求,以及检查 <form> 的整个来源来检查。 ,不只是那个特定的<input> .希望这对您有所帮助!

关于javascript - Python 提交带有请求的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477660/

相关文章:

javascript - D3 强制布局图从文件加载数据

javascript - 检测使用 javascript 单击哪个链接将用户带到特定页面

javascript - 什么时候使用 document.implementation.createHTMLDocument?

javascript - JSF 用户界面 :include and getElementById

python - random.choice() 有两个参数?

python - 有没有什么有效的方法可以用python编写这段代码

python - 使用 Python 计算 N 克

java - 在 html 中显示 sqlite 数据库查询

javascript - 当鼠标悬停在父 div 上时更改子 div 的背景图像

javascript - 带有 onclick 和 href ='#' 的 anchor 标记滚动到顶部