I scrapy bin mit einer Website zu analysieren, die die folgende Form hat:Scrapy - Formulardaten mit mehreren Optionen senden
<form id="form1"...>
<select name="codes" multiple="multiple"...>
<option value="0">Option one</option>
<option value="1">Option two</option>
<option value="2">Option three</option>
....
</select>
</form>
Ich Füllen und das Formular mit dem folgenden Code einreichen:
submit_form = FormRequest.from_response(response,
formxpath="//form[@id='form1']",
formdata={'codes': '0'},
callback=self.parse_table)
yield submit_form
Wie kann ich mehrere Codes in die Formulardaten eingeben? Ich habe es versucht:
formdata={'codes': '["0", "1", "2"]'},
formdata={'codes': ['0', '1', '2']},
Ohne Glück.
EDIT:
Die Form hat zusätzliche Eingabesteuerungen, versteckt einige von ihnen, die in der Form korrekt übergeben werden. Nach dem Senden des Formulars sehe ich, dass der Server auf die gleiche Seite mit dem Formular zurückkehrt, wenn ich eine neue Seite mit einer Tabelle erwarte, die tatsächlich die Daten enthält, die ich abrufen möchte.
Ich weiß nicht viel über das Server-Backend mehr als dass es mit .NET 2.0 gebaut wurde. Es ist eine sehr alte Seite aus einer Regierungsabhängigkeit.
Danke.
Gibt es versteckte Felder in diesem Formular, die nicht korrekt übergeben werden? –
'formdata = {'codes': ['0', '1', '2']}, sollte es richtig codiert haben. Ich fürchte, da stimmt etwas nicht. Kannst du "Ohne Glück" im Fragenkörper beschreiben? Können Sie eine Beispiel-URL angeben? – starrify
Danke @ kiran.koduru. Bitte sehen Sie meine aktualisierte Frage –