请求实现Google表格数据自动批量提交至指定Google表单
实现Google表单批量自动提交的方案
核心原理
Google表单的提交本质是向表单的formResponse端点发送POST请求,只需构造正确的表单参数即可完成提交,无需模拟页面操作。
步骤1:确定表单提交地址
将你提供的表单URL中的viewform替换为formResponse,得到提交接口地址:
https://docs.google.com/forms/d/e/1FAIpQLSc4OjEgxlYpcAO7zkd9-jLNvkB3nZRsrkMv-IqVII6EnL0DnQ/formResponse
步骤2:Python批量提交脚本
使用requests库发送POST请求,以下是可直接运行的脚本(根据你的需求调整参数):
首先安装依赖:
pip install requests
脚本代码:
import requests import random from time import sleep # 表单提交地址 FORM_URL = "https://docs.google.com/forms/d/e/1FAIpQLSc4OjEgxlYpcAO7zkd9-jLNvkB3nZRsrkMv-IqVII6EnL0DnQ/formResponse" # A、B列固定值(所有提交共用) FIXED_A = "你的固定A列内容" FIXED_B = "你的固定B列内容" # 对应entry编号:A→entry.1359390460,B→entry.760502198,C→entry.1358984343,D→entry.650693243 ENTRY_MAP = { "A": "entry.1359390460", "B": "entry.760502198", "C": "entry.1358984343", "D": "entry.650693243" } # 提交次数(可扩展) SUBMIT_COUNT = 100 def generate_dynamic_cd(): """生成每次提交的C、D列动态数据,可根据需求修改逻辑""" # 示例:随机生成字符串,可替换为从文件读取、数据库查询等逻辑 c_value = f"动态C_{random.randint(1000, 9999)}" d_value = f"动态D_{random.randint(1000, 9999)}" return c_value, d_value def submit_form(): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } for i in range(SUBMIT_COUNT): try: # 获取动态C、D值 c_val, d_val = generate_dynamic_cd() # 构造表单参数 form_data = { ENTRY_MAP["A"]: FIXED_A, ENTRY_MAP["B"]: FIXED_B, ENTRY_MAP["C"]: c_val, ENTRY_MAP["D"]: d_val, "pageHistory": "0,2,6", "submit": "Submit" } # 发送POST请求 response = requests.post(FORM_URL, data=form_data, headers=headers) # 验证提交是否成功(状态码200表示成功) if response.status_code == 200: print(f"第{i+1}条提交成功 | C: {c_val}, D: {d_val}") else: print(f"第{i+1}条提交失败,状态码: {response.status_code}") # 随机延迟,避免被Google限制(建议1-3秒) sleep(random.uniform(1, 3)) except Exception as e: print(f"第{i+1}条提交出错: {str(e)}") if __name__ == "__main__": submit_form()
关键说明
- 动态数据生成:修改
generate_dynamic_cd()函数,可实现从本地文件、数据库读取数据,或按业务规则生成自定义内容。 - 防限制措施:添加随机延迟(
sleep),避免短时间内大量提交触发Google的反爬机制。 - 参数对应:确保
ENTRY_MAP中的entry编号与表单字段一一对应,pageHistory需保持你提供的0,2,6。
注意事项
- 请勿过度提交,避免Google账号或IP被限制。
- 如果提交失败,检查headers中的User-Agent是否模拟真实浏览器,或调整延迟时间。
内容的提问来源于stack exchange,提问作者MZ Gaming
相关产品推荐
相关产品推荐

