我正在尝试使用python 3.5和robobrowser输入输入值后废弃网页。我面临的问题是:尝试在输入中一次输入每个值。
<select name="ctl00$ContentPlaceHolder1$DDLDistrict" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$DDLDistrict\',\'\')', 0)" id="ctl00_ContentPlaceHolder1_DDLDistrict">
<option value="Select District">Select District</option>
<option selected="selected" value="8">Agra</option>
<option value="9">A</option>
<option value="29">B</option>
<option value="70">C Nagar</option>
<option value="72">D</option>
<option value="58">Y</option>
<option value="40">Z</option>
</select>
我的部分Python代码是:
import re
from robobrowser import RoboBrowser
# Browse to Genius
browser = RoboBrowser(history=True)
browser.open('http://164.100.180.82/ceouptemp/RollPDF.aspx')
from bs4 import BeautifulSoup
form = browser.get_form(name='ctl00$ContentPlaceHolder1$DDLDistrict')
答案 0 :(得分:1)
只需仔细检查,确保您确实找到了表单,但打印表单。下面的代码假定您使用上面发布的代码进行交互式Python会话。
>>> print(form)
如果您获得一些以<RoboForm __
开头的价值,那么您就可以开展业务了。如果您获得None
,那么您实际上并没有选择该表单,您应该尝试以下方法来确定表单的位置,
>>> browser.get_forms()
找到包含选择列表的表单后,可以将表单的值更改为某些值(例如&#39; 29&#39;如下) :
form
如果您想要所有选项的列表,可以执行以下操作:
>>> form['ctl00$ContentPlaceHolder1$DDLDistrict'].value = '29'
快乐的报废!
查看RoboBrowser文档以获取更多信息(请注意复选框上的示例就像选择一样):https://github.com/jmcarp/robobrowser