2017-01-10 4 views
2

Ich suchte die Methoden zum Ausfüllen eines Formulars mit Python und festgestellt, dass fast alle Antworten vorschlagen, "mechanize" zu verwenden. Um Mechanize zum Ausfüllen eines Formulars zu verwenden, muss ich den Formularnamen vor dem Ausfüllen auswählen.Füllen Sie Webformular ohne Namen und ID mit Python

br = Browser() 
br.select_form('f') 

Ich habe Formulare ohne "Name" oder "ID" -Feld gesehen. Ich frage mich, wie ich sie füllen kann. Ein solches Formular könnte here gefunden werden. Die Eingabefelder im Formular haben Namen, aber das Formular selbst scheint keine zu haben.

+0

Passt Ihnen br.select_form (nr = 0) nicht? Es wählt das erste Formular innerhalb der Br-Instanz aus. – Nevertheless

+0

@KidBinary: Geht das? Das wusste ich nicht. –

+0

Ich wette, es tut. Außerdem erinnere ich mich, dass br.forms() iterierbar ist und alle Formulare auf der Seite enthält. – Nevertheless

Antwort

1

Die erste Methode achive diese fehleranfälliger ist aber einfacher:

br = Browser() 
br.select_form(nr=0) 

Wo nr Indexnummer des Formulars auf der angegebenen Seite. Die zweite Methode umfasst Iterieren über br.forms():

br = Browser() 
forms = [form for form in br.forms()] 

und ermöglicht erforderliche Form zu wählen, je nach Bedarf.

Verwandte Themen