【问题标题】:how to extract selected value from dropdown box如何从下拉框中提取选定的值
【发布时间】:2021-10-29 10:09:16
【问题描述】:

我有这段 HTML

<div id="ctl00_cphMain_upAseguradora">
    <ul>
        <li>
            Régimen de Afiliación(*)
            <select name="ctl00$cphMain$ddlRegimenAfiliacion" id="ctl00_cphMain_ddlRegimenAfiliacion" disabled="disabled" class="aspNetDisabled comboBox">
                <option value="0">-Seleccione-</option>
                <option selected="selected" value="58">Contributivo</option>
                <option value="61">Especial</option>
                <option value="60">Pobre no afiliado</option>
                <option value="59">Subsidiado</option>
            </select>
        </li>
    </ul>
</div>

对于网站的这一部分

通过selectorgadget,我找到了我需要的元素,但我不确定如何提取选定的选项,在这种情况下为“Contributivo”

Regimen = detallepersona %>% html_elements("#ctl00_cphMain_upAseguradora ul:nth-child(1) li:nth-child(1) option") 

paste(Regimen)
[1] "<option value=\"0\">-Seleccione-</option>\n"           "<option selected value=\"58\">Contributivo</option>\n"
[3] "<option value=\"61\">Especial</option>\n"              "<option value=\"60\">Pobre no afiliado</option>\n"    
[5] "<option value=\"59\">Subsidiado</option>"             

Regimen %>%  html_attr("selected")
[1] NA         "selected" NA         NA         NA        

Regimen %>% html_text()
[1] "-Seleccione-"      "Contributivo"      "Especial"          "Pobre no afiliado" "Subsidiado"   

【问题讨论】:

    标签: html r css-selectors rvest


    【解决方案1】:

    使用属性或属性 = 值 css 选择器来定位具有 selected 属性的父 select 元素的子元素,该元素具有 id ctl00_cphMain_ddlRegimenAfiliacion,具有 selected 属性。下面的 css 选择器中的空格是后代组合器。

    #ctl00_cphMain_ddlRegimenAfiliacion [selected]

    #ctl00_cphMain_ddlRegimenAfiliacion [selected=selected]

    例如

    Regimen = detallepersona %>% html_element('#ctl00_cphMain_ddlRegimenAfiliacion [selected]')%>%html_text()
    

    阅读更多:

    1. https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
    2. https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_combinator

    【讨论】:

      【解决方案2】:
      Regimen = detallepersona %>% html_elements("#ctl00_cphMain_upAseguradora ul:nth-child(1) li:nth-child(1) option") 
      
      Regimen1 = Regimen %>%  html_attr("selected")
      Regimen1 = !is.na(Regimen1)
      Regimen = Regimen %>% html_text()
      
      Regimen[Regimen1]
      [1] "Contributivo"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 2010-09-30
        • 2018-06-20
        • 2023-03-04
        • 1970-01-01
        相关资源
        最近更新 更多