【问题标题】:How to scrape a dropdwon menu with Selenium-Python?如何使用 Selenium-Python 抓取下拉菜单?
【发布时间】:2019-11-14 15:15:36
【问题描述】:

我必须从这个网页上抓取数据:http://www.mlsa.am/?page_id=368.The 网页是亚美尼亚语。这是一个下拉菜单,其中选项有:地区、地区、社区、补贴类型、月份和年份。一旦选择了这些选项,就会显示一个表格,其中包含有关这些地方获得不同类型补贴的公民的信息。我现在面临的困难是第二个下拉列表(区域)取决于您在第一个下拉列表中选择的选项,第三个(社区)取决于您在之前的下拉列表中选择的选项。我应该如何为这种类型的网页编写代码?

这是您检查网页时的样子

<!--Մարզեր-->
            <div class="td-pb-row">
                <div class="td-pb-span2"></div>
                <div class="td-pb-span5">
                    Մարզեր <span class="ben-required">*</span> &nbsp;&nbsp;&nbsp;
                    <select  id="ref_regions_id"  name="ref_regions" style="border:1px solid #0790A2;"  >
                        <option value="0" > Ընտրել </option>
                                                <option  value="1"> ԱՐԱԳԱԾՈՏՆ</option>
value="2"> ԱՐԱՐԱՏ</option>

    <option  value="3"> ԱՐՄԱՎԻՐ</option>

    <option  value="4"> ԳԵՂԱՐՔՈՒՆԻՔ</option>

    <option  value="5"> ԼՈՌԻ</option>

    <option  value="6"> ԿՈՏԱՅՔ</option>

    <option  value="7"> ՇԻՐԱԿ</option>

    <option  value="8"> ՍՅՈՒՆԻՔ</option>

    <option  value="9"> ՎԱՅՈՑ ՁՈՐ</option>

    <option  value="10"> ՏԱՎՈՒՇ</option>

    <option  value="11"> ԵՐԵՎԱՆ</option>`

                    </select>
                </div>

我在 python 中使用 selenium,到目前为止这是我的代码:

import time
import requests
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
chrome_path = r"C:\Users\ivrav\selenium-2.25.0\Driver\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
print("loading url into browser...")
def get_all_pages():
    payload={'value':'1'}
driver.get("http://www.mlsa.am/?page_id=368")
print(url.text)
time.sleep(2)

【问题讨论】:

    标签: python selenium dropdown scrape


    【解决方案1】:

    要从 HTML 中显示的下拉列表中选择一个选项,我会在 Python 中使用 Select() 类:

    from selenium.webdriver.support.ui import Select
    
    
    select = Select(driver.find_element_by_id('ref_regions_id'))
    

    然后,您可以选择这样的选项:

    select.select_by_text("ԱՐՄԱՎԻՐ")
    

    或者,在选项元素上使用value 属性:

    select.select_by_value(0)
    

    最后,您可以在下拉列表中获取所有可用选项:

    options = select.options
    
    for option in options:
        print(option)
    

    要根据前一个下拉菜单来处理每个下拉菜单,您只需根据预先确定的一组选项以正确的顺序为每个下拉菜单选择一个选项。每个下拉菜单都有一个唯一的 ID,这应该会有所帮助。

    【讨论】:

    • 如果这篇文章对您有所帮助,请随时标记为您的问题的答案,以便其他用户可以看到它对您有帮助!
    猜你喜欢
    • 2021-03-26
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    相关资源
    最近更新 更多