Python在网站上选择DropDown菜单并提交

时间:2015-06-18 01:46:40

标签: python html mechanize

我想使用Python从网站的下拉菜单中选择一个值,网站是:http://web3.dgpa.gov.tw/WANT03FRONT/AP/WANTF00001.aspx?mode=PC

<select id="ctl00_ContentPlaceHolder1_drpWORK_PLACE" class="CDropDownList160PX" name="ctl00$ContentPlaceHolder1$drpWORK_PLACE">
<option value=""></option>
<option value="00">00-不拘</option>
<option value="100">---大台北地區---</option>
<option value="10">10-臺北市</option>
<option value="23">23-新北市</option>
<option value="200">---桃竹苗地區---</option>
<option value="30">30-新竹市</option>
<option value="31">31-新竹縣</option>
<option value="33">33-桃園市</option>
<option value="35">35-苗栗縣</option>
<option value="300">---中彰投地區---</option>
<option value="42">42-臺中市</option>
<option value="50">50-彰化縣</option>
<option value="54">54-南投縣</option>
<option value="400">---雲嘉南地區---</option>
<option value="60">60-嘉義市</option>
<option value="61">61-嘉義縣</option>
<option value="63">63-雲林縣</option>
<option value="72">72-臺南市</option>
<option value="500">---高高屏地區---</option>
<option value="82" selected="selected">82-高雄市</option>
<option value="90">90-屏東縣</option>
<option value="600">-----基宜地區-----</option>
<option value="20">20-基隆市</option>
<option value="26">26-宜蘭縣</option>
<option value="700">-----花東地區-----</option>
<option value="95">95-臺東縣</option>
<option value="97">97-花蓮縣</option>
<option value="800">-----離島地區-----</option>
<option value="21">21-福建省連江縣</option>
<option value="88">88-澎湖縣</option>
<option value="89">89-金門縣</option>
</select>

我想选择

<option value="82" selected="selected">82-高雄市</option>

然后使用Python提交它,这是我的代码到目前为止:

from mechanize import Browser
br = Browser()
br.open("http://web3.dgpa.gov.tw/WANT03FRONT/AP/WANTF00001.aspx?mode=PC")
br.select_form(nr=0)

更新:现在可以选择人员下拉和工作地点下拉列表。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

from mechanize import Browser

br = Browser()
br.set_handle_robots(False)
br.open("http://web3.dgpa.gov.tw/WANT03FRONT/AP/WANTF00001.aspx?mode=PC")
br.select_form("aspnetForm")

# select work place
control = br.form.find_control("ctl00$ContentPlaceHolder1$drpWORK_PLACE")

for item in control.items:
    # item.name
    # 63 == 雲林, 82 == 高雄
    if item.name == "82":
        item.selected = True

# select person kind
control = br.form.find_control("ctl00$ContentPlaceHolder1$drpPERSON_KIND")
for item in control.items:
    if item.name == "11":
        item.selected = True

# fill in 職系 textfield
br['ctl00$ContentPlaceHolder1$txtSYSNAM'] = "一般行政"

html = (br.submit()).read()
print html

1 个答案:

答案 0 :(得分:0)

我认为您可以在form documentation找到答案。基于 var onSuccess = function(data) { //Want to get json payload from data }; var onFail = function(data) { //Want to get json payload from data }; // save model which sends a post request to the server model.save().then(onSuccess, onFail); 控件的文档值,即使它是单个值选择,控件也必须是一个列表。如果您只想设置一个项目以供选择,这可能会有所帮助。

select