2016-11-05 2 views
0

Ich benutze Robobrowser, um eine Suche auf einer Website zu automatisieren. Ich muss zwei Formulareingaben ausfüllen, aber robobrowser.get_form nimmt nur die erste Eingabe auf. Irgendwelche Ideen, wie man das vollständige Formular bekommt und der zweiten Eingabe einen Wert zuweist?Python robobrowser get_form bekommt nicht das ganze Formular

HTML:

<form name="form1" method=post action="/sundown/cart_prod/cart_con_r2trastrep2"> 
<h5 align= "center"><font face_"verdana,arial, helvetica, sans-serif" size="4">Enter The Report Date(MM/YYYY): 
<input type="text" Name="p_r2reportdate" size="6" maxlength="7"> 
</font></p> 
<h5 align= "center"><font face_"verdana,arial, helvetica, sans-serif" size="4">Enter The Transporter ID: 
<input type="text" name="p_r2trans_id" size="6" maxlength="7"> 
</font></p> 
<input type="submit" > 
</font></p> 
    </form> 

Python-Skript:

import re 
from robobrowser import RoboBrowser 
sonris = 'http://sonlite.dnr.state.la.us/sundown/cart_prod/CART_CON_r2trastrep1' 
former1 = "p_r2reportdate" 
former2 = "p_r2trans_id" 
date = '01/2016' 
code = '7250' #capline 
browser = RoboBrowser(history=True,parser='html.parser') 
browser.open(sonris) 
form = browser.get_form(action="/sundown/cart_prod/cart_con_r2trastrep2") 
print(form) #<RoboForm p_r2reportdate=> 
form[former1].value = date 
form[former2].value = code 
browser.submit_form(form) 
print(str(browser.parsed)) 

Antwort

0

Der einzige Grund, dass ich sehen kann, ob das der zweite Parameter das Attribut name in Kleinbuchstaben "name" hat als „Name im Gegensatz "für den früheren. Also schlage ich vor, wenn Sie die Quelle reparieren können, sonst erhalten Sie das Eingabefeld aus dem Formular mit einem anderen Attribut und legen Sie dann seinen Wert fest.

Verwandte Themen