Python将Web表单设置值提交到没有名称或ID的字段

时间:2015-10-05 23:05:51

标签: python python-2.7 python-requests mechanize mechanize-python

我试图在此页面中提交搜索工资表单(中间一个):http://www.glassdoor.com/Salaries/index.htm使用Python 2.7 mechanize 0.2.5。

但是,我找不到在第二个输入框中设置值的方法,因为它没有名称或id,只有class。我可以定位此表单以及第一个输入框。有没有办法将值设置到下一个输入框?

这是我的代码:

url = "http://www.glassdoor.com/Salaries/index.htm"
br = mechanize.Browser()
br.set_handle_robots(False)  # ignore robots
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open(url)
br.select_form(nr=1)
br["sc.keyword"] = "Data Analyst"
br[None] = "San Francisco"    # this line is problematic
res = br.submit()
print res.geturl()

表格打印出来如下:

<GET http://www.glassdoor.com/Salaries/company-salaries.htm application/x-www-form-urlencoded
<HiddenControl(suggestCount=0) (readonly)>
<HiddenControl(suggestChosen=false) (readonly)>
<HiddenControl(clickSource=searchBtn) (readonly)>
<HiddenControl(typedKeyword=) (readonly)>
<TextControl(sc.keyword=)>
<TextControl(<None>=)>
<HiddenControl(locT=) (readonly)>
<HiddenControl(locId=) (readonly)>
<HiddenControl(jobType=all) (readonly)>
<SubmitButtonControl(<None>=) (readonly)>
<SubmitButtonControl(<None>=) (readonly)>>

如何设置第二个'TexControl'的值?谢谢!

0 个答案:

没有答案