Как я могу использовать Selenium в Python, чтобы получить JavaScript элемент? - PullRequest
1 голос
/ 11 марта 2020

Я бы хотел разобрать "отключено", но я не могу сделать это с помощью Beautiful Soup. Как я могу использовать Selenium в Python для анализа "отключен"? Сайт, который я анализирую: https://sport.woot.com/offers/asics-mens-clearance-calculator?ref=w_cnt_lnd_cat_sprt_18_1 Размер

                                    <select id="attr-size" name="Size">
                                        <option value="none">- Select -</option>
                                            <option value="6.5">6.5</option>
                                            <option value="8">8</option>
                                            <option value="8.5" disabled="">8.5</option>
                                            <option value="9.5">9.5</option>
                                            <option value="10">10</option>
                                            <option value="10.5">10.5</option>
                                            <option value="11">11</option>
                                            <option value="12" disabled="">12</option>
                                            <option value="13" disabled="">13</option>
                                            <option value="14" disabled="">14</option>
                                            <option value="12 Wide US">12 Wide US</option>
                                            <option value="13 (4E)" disabled="">13 (4E)</option>
                                    </select>
                                </div>

Попытка:

from selenium import webdriver
import geckodriver_autoinstaller
driver = webdriver.Firefox()
driver.get("https://sport.woot.com/offers/asics-mens-clearance-calculator? 
ref=w_cnt_lnd_cat_sprt_18_1")
disabled_sizes = driver.find_element_by_class_name("disabled")
my_disabled_sizes = []
try:
    for disabled_size in disabled_sizes:
        try:
            my_disabled_sizes.append(disabled_sizes.text)

        except:
            pass
except:
    pass
try:
    print(my_disabled_sizes[1:])  # skip first element then start listing 
disabled sizes
except:
    pass

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете использовать приведенный ниже xpath для получения всех опций с атрибутом disabled.

//select[@id='attr-size']/option[@disabled]

Вот логика c для получения всех отключенных элементов в python.

disabled_elems =driver.find_elements_by_xpath("//select[@id='attr-size']/option[@disabled]")

Снимок экрана:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...