Python在网站上选择一个下拉菜单并提交

2024-10-01 15:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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>

我想选择

^{pr2}$

然后用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

Tags: namebrbrowserformhttpvalueitemselect
1条回答
网友
1楼 · 发布于 2024-10-01 15:31:26

我想你可以在form documentation里找到你的答案。根据文档值select控件必须是一个列表,即使它是单值选择。如果您只想设置一个项目来选择,这可能会有帮助。在

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

# walk through each input control in the form:
for control in br.select_form(nr=0):
    # find the intended <select>
    if control.type=="select" and control.name=="ctl00$ContentPlaceHolder1$drpWORK_PLACE":
        # the value must be a list. because select is a list.
        control.value = ["82"]
        for item in control.items:
            if item.value == "82":
                item.selected = True
            else:
                item.selected = False

相关问题 更多 >

    热门问题