用Python向googleforms发送POST请求

2024-09-25 00:20:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我创建了一个google表单,下面是链接:https://docs.google.com/forms/d/e/1FAIpQLSeI3-jkg0oedRXECibaxbGZiFyOHGYjvNiOXcADBK9Qq__gUg/viewform

我想用Python的Python来回答,我试过了,但它返回400,错误的请求。在

这是我的代码:


import requests
def f():
  url = 'https://docs.google.com/forms/d/e/1FAIpQLSedKV-pzCYZjnp-tAm6Ww9HMoosYPucSL2y9usEIz6yBizbFg/formResponse'
  form_data = {"entry.386860893":"Python","fvv":1,"draftResponse":'[]',"pageHistory":0,"fbzx":-6718008993703688486}
  user_agent = {'Refer':'https://docs.google.com/forms/d/e/1FAIpQLSeI3-jkg0oedRXECibaxbGZiFyOHGYjvNiOXcADBK9Qq__gUg/viewform?fbzx=-6860115379139697000','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
  r = requests.post(url, data=form_data, headers=user_agent)
  print(r)

谢谢!在


Tags: httpsformcomurldocsdatagoogleforms
1条回答
网友
1楼 · 发布于 2024-09-25 00:20:52

更新:

我错了。错误不是由于会话的数据丢失或无效造成的。下面的代码示例(session的使用)不是必需的!我刚把你的代码示例中的URL改成了你问题中的链接,这对我很有用:

import requests
url = 'https://docs.google.com/forms/d/e/1FAIpQLSeI3-jkg0oedRXECibaxbGZiFyOHGYjvNiOXcADBK9Qq__gUg/formResponse'
form_data = {"entry.386860893":"Python","fvv":1,"draftResponse":'[]',"pageHistory":0,"fbzx":-6718008993703688486}
requests.post(url, data=form_data)  # response [200]

原始答案:

也许你需要先去拿个令牌什么的。对于与网站的交互通信,我建议使用requests.Session()来处理与网页的交互。 http://docs.python-requests.org/en/master/user/advanced/ 如果我使用你的代码示例中的链接,我也会收到错误的请求,但是使用你的问题中的链接可以做到:

^{pr2}$

相关问题 更多 >