0Pricing
Web Scraping & Bots · Lesson

Automating Simple Form Submissions

Develop bots that can automatically fill out and submit web forms, handling various input types.

Automating Simple Form Submissions is a free Web Scraping & Bots lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Web Scraping & Bots learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

What are Web Forms?

Web forms are how you interact with websites! Think of logging in, signing up, searching for products, or leaving comments.

They are collections of input fields, buttons, and other elements that let you send data to a web server. Automating them means your bot can fill and submit these forms for you.

Why Automate Forms?

Automating form submissions saves time and effort. Instead of manually typing information repeatedly, your bot can do it instantly.

  • Sign-ups: Create multiple accounts for testing.
  • Data Entry: Submit data to web applications.
  • Searches: Perform repetitive searches.

It's a core skill for building useful bots!

Identifying Form Inputs

Before submitting, your bot needs to know *what* to fill. We identify form elements using HTML attributes, especially the name attribute.

Common input types include text fields, password fields, checkboxes, radio buttons, and text areas. Each has a unique name that acts as its identifier.

The 'name' Attribute is Key

When you submit a form, the browser sends data as key-value pairs. The key is the name attribute of the input field, and the value is what you typed into it.

For example, an input field like <input type="text" name="username"> tells the server that the data for 'username' is being sent.

Preparing Your Data (Payload)

To submit a form with Python's requests library, you'll create a dictionary. This dictionary holds all the name-value pairs for the form fields you want to fill.

This dictionary is often called the 'payload' or 'form data'.

Simple Form Submission with POST

Most forms use the HTTP POST method to send data securely. The requests.post() function is perfect for this. You pass the target URL and your data payload.

Let's simulate submitting a simple form with a username and password (to a placeholder URL).

import requests

url = "https://httpbin.org/post" # A test URL that echoes POST data

# Prepare the data for the form fields
payload = {
    "username": "coddybot",
    "password": "secure_pass123"
}

# Send the POST request
response = requests.post(url, data=payload)

# Print the response from the server
print("Status Code:", response.status_code)
print("Response JSON:", response.json())

Understanding the Response

After submitting a form, the server sends a response. The response.status_code tells you if the submission was successful (e.g., 200 for OK, 404 for Not Found).

The response.json() or response.text contains the server's reply, which might confirm the submission or show errors.

In the example, httpbin.org/post returns the data it received, confirming our payload was sent.

Handling Checkboxes & Radios

Checkboxes and radio buttons work similarly. You include their name attribute as a key in your payload. For their value, you use the value attribute defined in the HTML.

  • Checkbox: Include the name and value if checked. Omit if not.
  • Radio Button: Include the name and the value of the selected option.

Practice Form Submission

Imagine a form with a checkbox <input type="checkbox" name="agree_terms" value="yes"> and a radio button group <input type="radio" name="color" value="blue">.

If you want to check 'agree_terms' and select 'blue', your payload would look like this:

import requests

url = "https://httpbin.org/post"

payload = {
    "agree_terms": "yes", # Checkbox value
    "color": "blue",      # Selected radio button value
    "message": "Hello Bot!"
}

response = requests.post(url, data=payload)

print("Status Code:", response.status_code)
print("Response JSON:", response.json())

Form Submission Check

Which HTML attribute is MOST crucial for identifying an input field when preparing data for a form submission?

Recap: Automating Forms

You've learned how to make your bot interact with web forms!

  • Identify form fields using the name attribute.
  • Prepare your data as a dictionary (payload).
  • Use requests.post() to send the data to the server.
  • Handle different input types like text fields, checkboxes, and radio buttons.

Next, we'll explore scheduling these tasks to run your bots automatically!

Frequently asked questions

Is the “Automating Simple Form Submissions” lesson free?

Yes — the full text of “Automating Simple Form Submissions” is free to read here on the web, and the Web Scraping & Bots course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Web Scraping & Bots course, upgrade to CoddyKit PRO.

What will I learn in “Automating Simple Form Submissions”?

Develop bots that can automatically fill out and submit web forms, handling various input types. You practise Web Scraping & Bots with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Web Scraping & Bots?

No prior experience is required. Web Scraping & Bots on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Automating Simple Form Submissions” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Web Scraping & Bots lesson?

Yes. Every Web Scraping & Bots lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Defining Bot Objectives
  2. Automating Simple Form Submissions
  3. Scheduling Basic Tasks
  4. Logging and Error Handling for Bots
← Back to Web Scraping & Bots