Python robobrowser get_form并没有获得整个表单

时间:2016-11-05 23:12:00

标签: python beautifulsoup robobrowser

我正在使用robobrowser在网站上自动搜索。我需要填写两个表单输入,但robobrowser.get_form只接收第一个输入。关于如何获取完整表格并为第二个输入分配值的任何想法?

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脚本:

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))

1 个答案:

答案 0 :(得分:0)

我可以看到第二个参数是否具有小写“name”的name属性而不是之前的“Name”的唯一原因。所以我建议你是否可以修复源代码,否则使用另一个属性从表单中获取输入字段,然后设置其值。