使用Python问题发布到google表单

2024-09-25 00:34:43 发布

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

这是我的谷歌表单的URL: https://docs.google.com/forms/d/e/1FAIpQLSfhLUFVzPk48c-Mdbc1N1ImVAtsZ_8WaQESydWrXOsJvz2rRw/viewform

下面是我的Python代码:

    import requests

    url = "https://docs.google.com/forms/d/e/1FAIpQLSfhLUFVzPk48c-Mdbc1N1ImVAtsZ_8WaQESydWrXOsJvz2rRw/formResponse"
    s = requests.Session()
    datos = {"entry.1155905730":"TRES", "entry.2110183202":"DOS", "fvv":1, 'draftResponse':[],'pageHistory':0}    
    x = s.post(url, data=datos)

我在谷歌表格中得到了空的回复,好像所有的答案都是空白的

我错过了什么


Tags: 代码httpsimportcomurl表单docsgoogle
1条回答
网友
1楼 · 发布于 2024-09-25 00:34:43

在开始填写之前,您需要发送一篇帖子以进入表单,这是您看到所发布链接的方式:https://docs.google.com/forms/d/e/1FAIpQLSfhLUFVzPk48c-Mdbc1N1ImVAtsZ_8WaQESydWrXOsJvz2rRw/viewformenter image description here

尝试使用DevTools inspector重现请求和响应,检查“下一步”按钮,在“网络”选项卡中,您可以找到使您进入表单的请求:

enter image description here

如何用python复制它们?在python代码curl.trillworks中转换curl请求的酷站点

粘贴请求并发送它

In [1]: import requests 
   ...:  
   ...: headers = { 
   ...:     'authority': 'docs.google.com', 
   ...:     'cache-control': 'max-age=0', 
   ...:     'origin': 'https://docs.google.com', 
   ...:     'upgrade-insecure-requests': '1', 
   ...:     'content-type': 'application/x-www-form-urlencoded', 
   ...:     'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like 
   ...: Gecko) Chrome/79.0.3945.117 Safari/537.36', 
   ...:     'sec-fetch-user': '?1', 
   ...:     'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.
   ...: 8,application/signed-exchange;v=b3;q=0.9', 
   ...:     'x-chrome-connected': 'id=102279514883169871637,mode=0,enable_account_consistency=false,consist
   ...: ency_enabled_by_default=false', 
   ...:     'x-client-data': 'CJW2yQEIpbbJAQjEtskBCKmdygEI6qzKAQicrcoBCMuuygEIvbDKAQiOssoBCPe0ygEIl7XKAQiYt
   ...: coBCOy1ygEI4bbKARirpMoB', 
   ...:     'sec-fetch-site': 'same-origin', 
   ...:     'sec-fetch-mode': 'navigate', 
   ...: } 
   ...:  
   ...: data = { 
   ...:   'fvv': '1', 
   ...:   'draftResponse': '[null,null,"4300515041069574030"]\r\n', 
   ...:   'pageHistory': '0', 
   ...:   'fbzx': '4300515041069574030', 
   ...:   'continue': '1' 
   ...: } 
   ...:  
   ...: response = requests.post('https://docs.google.com/forms/u/0/d/e/1FAIpQLSfhLUFVzPk48c-Mdbc1N1ImVAtsZ
   ...: _8WaQESydWrXOsJvz2rRw/formResponse', headers=headers, data=data) 
   ...:  
In [2]: 'DOS' in response.text    # And boom!                                                                         
Out[2]: True

相关问题 更多 >