You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助实现Google Forms自动化虚拟数据填充

自动化填充Google Forms生成虚拟调研数据方案

方法一:Python + Requests(无浏览器,高效批量提交)

步骤1:获取表单提交接口与参数

打开你的Google Forms页面,按F12进入开发者工具,手动填写一次测试数据并提交。在Network标签中找到提交的POST请求,复制其完整URL(格式通常为https://docs.google.com/forms/d/e/XXX/formResponse),同时查看请求的Form Data,每个表单问题对应一个entry.XXX格式的参数键,比如选择题的选项值、文本框的输入内容。

步骤2:准备依赖与虚拟数据生成

安装所需Python库:

pip install requests faker

利用faker生成模拟真实用户的虚拟数据,结合随机选择逻辑匹配表单问题类型:

  • 选择题:从预设选项列表随机选取
  • 文本框:生成姓名、邮箱、地址等真实格式的模拟内容
  • 数字类问题:生成符合范围的随机数值

步骤3:编写批量提交脚本

import requests
from faker import Faker
import random

# 初始化中文虚拟数据生成器
fake = Faker("zh_CN")

# 替换为你的表单提交URL
FORM_SUBMIT_URL = "https://docs.google.com/forms/d/e/XXX/formResponse"

def generate_form_data():
    # 替换为实际表单的entry参数与对应生成逻辑
    return {
        "entry.123456": random.choice(["学生", "上班族", "自由职业者"]),
        "entry.789012": fake.name(),
        "entry.345678": fake.email(),
        "entry.901234": str(random.randint(18, 60)),
        # 其他表单问题依次添加对应参数
    }

def batch_submit(count=50):
    for idx in range(count):
        form_data = generate_form_data()
        response = requests.post(FORM_SUBMIT_URL, data=form_data)
        status = "成功" if response.status_code == 200 else f"失败(状态码:{response.status_code})"
        print(f"第{idx+1}条数据提交{status}")

if __name__ == "__main__":
    batch_submit()

方法二:Python + Selenium(模拟浏览器,适配复杂表单)

如果表单存在动态验证、下拉选择等复杂交互,用Selenium模拟真实浏览器操作更稳妥:

步骤1:安装依赖与驱动

pip install selenium faker

下载对应浏览器的驱动(如ChromeDriver),确保版本与本地浏览器一致。

步骤2:编写模拟填充脚本

from selenium import webdriver
from selenium.webdriver.common.by import By
from faker import Faker
import random
import time

fake = Faker("zh_CN")
# 替换为你的Google Forms页面链接
FORM_PAGE_URL = "https://docs.google.com/forms/d/e/XXX/viewform"

def fill_and_submit():
    driver = webdriver.Chrome()
    driver.get(FORM_PAGE_URL)
    time.sleep(random.uniform(1, 2))

    # 模拟点击选择题选项(替换为实际元素定位)
    identity_options = driver.find_elements(By.XPATH, "//div[@role='radio']")
    random.choice(identity_options).click()

    # 填写文本框(替换为实际元素定位)
    name_input = driver.find_element(By.XPATH, "//input[@type='text' and @aria-label='姓名']")
    name_input.send_keys(fake.name())

    email_input = driver.find_element(By.XPATH, "//input[@type='email']")
    email_input.send_keys(fake.email())

    # 提交表单
    submit_btn = driver.find_element(By.XPATH, "//div[@role='button' and text()='提交']")
    submit_btn.click()

    time.sleep(1)
    driver.quit()

# 批量提交
for idx in range(50):
    fill_and_submit()
    print(f"第{idx+1}条数据提交完成")

注意事项

  • 避免短时间内高频提交,可添加随机延时(time.sleep(random.uniform(1,3)))防止触发Google反机制
  • 确保脚本中的entry参数或元素定位与表单实际结构完全匹配
  • 必填问题必须全部生成对应数据,否则提交会失败

内容的提问来源于stack exchange,提问作者FURQHAN OMER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:43:36