Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gforms

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gforms

Google Forms wrapper for Python

  • 1.3.2
  • PyPI
  • Socket score

Maintainers
1

GForms

A python wrapper for public Google Forms.

This package does not implement form editing / sharing / other actions with user-owned forms

Installation

python3 -m pip install gforms

Features

  • Form parsing
    • All form settings are parsed
    • Multi-page forms are supported
    • Elements with input validation are supported
  • Form filling
    • Fill the entire form using a single callback function (see example)
    • Fill individual elements
    • Validate the form before submission
  • Form submission
    • Faster submission for multi-page forms (history emulation)

Limitations

  • Forms with required sign-in cannot be submitted
  • Forms with file upload cannot be parsed (sign-in is required for loading the form)
  • A CAPTCHA needs to be solved in order to send an e-mail with a response copy (when this option is enabled). CAPTCHA handling should be implemented separately
  • Form style is not parsed

Example

See example.py for more details.

from gforms import Form
from gforms.elements import Short, Value

def callback(element, page_index, element_index):
    # fill an element based on its position
    if page_index == 0 and element_index == 1:
        return 'Yes'
    # fill an element based on its type and name
    if isinstance(element, Short) and element.name == 'Your opinion:':
        return input(element.name)
    # fill choice elements with random values, skip optional elements if fill_optional is not used
    return Value.DEFAULT

url = 'https://docs.google.com/forms/d/e/.../viewform'

form = Form()

form.load(url)
print(form.to_str(indent=2))  # a text representation, may be useful for CLI applications

form.fill(callback)
form.submit()

# Faster submission for multi-page forms (use only one POST request)
# (in theory, you may get banned, but now the actual number of requests isn't checked)
form.submit(emulate_history=True)

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc