#python #selenium #beautifulsoup #drop-down-menu
#питон #селен #прекрасный суп #выпадающее меню
Вопрос:
Я пытаюсь очистить панель мониторинга, в которой есть выпадающее меню, и каждая опция возвращает разные значения данных на панели мониторинга.
Я использовал селен и Красивый суп для извлечения источника html-страницы:
driver.get(url) soup = BeautifulSoup(driver.page_source, 'html.parser')
Следующий код возвращает все данные из уникального параметра. Первый по умолчанию:
data = [] temp = [] for item in soup.find_all('div',{'class': 'box box-100'}): temp.append(item.get_text()) data.append(temp)
Я хочу проанализировать параметры и применить приведенный выше код, который работает.Как мне это сделать?
Я попытался получить доступ с помощью bs4, но он возвращает пустой список:
menu = [item.get_text() for item in soup.find_all('div',{'class': 'ng-dropdown-panel-items scroll-host'})]
и с селеном:
driver.find_element_by_class_name("ng-dropdown-panel-items scroll-host")
Исключение NoSuchElementException: Сообщение: такого элемента нет: Не удается найти элемент: {«метод»:»селектор css»,»селектор»:».ng-выпадающая панель-элементы прокрутки-хост»} (Информация о сеансе: безголовый chrome=95.0.4638.69)
Комментарии:
1. Будет трудно что-либо рекомендовать, если мы не сможем увидеть страницу. Находятся ли раскрывающиеся параметры в пустом lt;divgt;? Или они находятся в тегах div.ng-опций? Я понимаю, что это панель мониторинга, а не то, чем вы можете поделиться извне, но без html это будет сложно.
2. @А. Паттерсон lt;div class=»ng-option ng-star-inserted» role=»option» aria-selected=»false» id=»a8c90911eba7-2″gt;lt;!—-gt;lt;span class=»ng-option-label ng-star-inserted»gt;1_11_2021lt;/spangt;lt;!—-gt;lt;/divgt;
3. @A. Паттерсон, к которому я пытался получить доступ с помощью bs4: menu = [item.get_text() для элемента в soup.find_all(‘div’, {‘класс’: ‘ng-выпадающая панель-элементы прокрутки-хост’})], он возвращает пустой список
4. Да. Дает ли это вам массу значений, когда вы зацикливаетесь на этих ng-опционных дивах?
5. Я предполагаю, что проблема в том, что все опции в меню имеют одинаковые имена тегов и имена классов, но когда я просматриваю их, они возвращают значения только для первого варианта!! но спасибо!!