Я немного изменил ваш HTMl (закрыв тег «form» и добавив некоторый контент в текстовое поле для тестирования):
<form action="blabla" blabla >
<input 1 type=blah>
<input 2 type=blah2>
<noscript>
<textarea name="prda" rows="3" cols="40">Foobar</textarea>
</noscript>
</form>
Хорошо, вот механизированная версия:
from mechanize import ParseResponse, urlopen
response = urlopen("http://localhost:8000/test")
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
print form["prda"]
Это печатает "Foobar", поэтому я думаю, что я успешно выбрал текстовое поле.
Немеханизированная версия: С здесь :
from lxml.html import fromstring, tostring
form_page = fromstring(html_code)
form = form_page.forms[0]
form.fields = dict(
prda='input',
)
print tostring(form)