Análise de entrada de formulário de sopa bonita em Python
Meu objetivo é obter uma lista de todos os nomes e valores de entrada. Para emparelhá-los e enviar o formulário. Os nomes e valores são aleatórios.
from bs4 import BeautifulSoup # parsing
html = """
<html>
<head id="Head1"><title>Title Page</title></head>
<body>
<form id="formS" action="login.asp?dx=" method="post">
<input type=hidden name=qw1NWJOJi/E8IyqHSHA== value='gDcZHY+nV' >
<input type=hidden name=sfqwWJOJi/E8DFDHSHB== value='kgDcZHY+n' >
<input type=hidden name=Jsfqw1NdddfDDSDKKSL== value='rNg4pUhnV' >
</form>
</body>
</html>
"""
html_proc = BeautifulSoup(html)
Este bit funciona bem:
print html_proc.find("input", value=True)["value"]
> gDcZHY+nV
No entanto, as seguintes instruções não funcionam ou não funcionam como esperado:
print html_proc.find("input", name=True)["name"]
> TypeError: find() got multiple values for keyword argument 'name'
print html_proc.findAll("input", value=True, attrs={'value'})
> []
print html_proc.findAll('input', value=True)
> <input name="qw1NWJOJi/E8IyqHSHA==" type="hidden" value="gDcZHY+nV">
> <input name="sfqwWJOJi/E8DFDHSHB==" type="hidden" value="kgDcZHY+n">
> <input name="Jsfqw1NdddfDDSDKKSL==" type="hidden" value="rNg4pUhnV">
> </input></input></input>, <input name="sfqwWJOJi/E8DFDHSHB==" type="hidden"
> value="kgDcZHY+n">
> <input name="Jsfqw1NdddfDDSDKKSL==" type="hidden" value="rNg4pUhnV">
> </input></input>, <input name="Jsfqw1NdddfDDSDKKSL==" type="hidden" value="rNg4p
> UhnV"></input>