Skip to content

WORKING WITH FORMS - Extracting form data

Python
#!/usr/bin/env python3
"""WORKING WITH FORMS - Extracting form data"""
from bs4 import BeautifulSoup
html = """
<form action="/submit" method="post">
    <input type="text" name="username" value="john">
    <input type="email" name="email" placeholder="Email">
    <select name="country">
        <option value="us">USA</option>
        <option value="uk" selected>UK</option>
    </select>
    <button type="submit">Submit</button>
</form>
"""
soup = BeautifulSoup(html, 'html.parser')
print("Form Parsing:")
form = soup.find('form')
print(f"  Action: {form['action']}")
print(f"  Method: {form['method']}")
inputs = form.find_all('input')
print(f"  Inputs: {len(inputs)}")
for inp in inputs:
    name = inp.get('name')
    value = inp.get('value', inp.get('placeholder', ''))
    print(f"    {name}: {value}")
select = form.find('select')
selected = select.find('option', selected=True)
print(f"  Selected: {selected['value']}")