Фильтрация HTML-элементов, которые имеют «display: none» либо как атрибут тега, либо в их CSS

Допустим, у вас есть источник html, который был очищен с помощью Selenium и проанализирован с помощью BeautifulSoup:

from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Firefox() driver.get(url) soup = BeautifulSoup(driver.page_source) 

Есть ли способ удалить из html-кода или суп-объекта все элементы, которые либо имеют:

1.) атрибут style=display:none в источнике тега html (т. <div style = 'display:none'>...</div> )

или

2.) имеют display:none свойство в CSS страницы

One Solution collect form web for “Фильтрация HTML-элементов, которые имеют «display: none» либо как атрибут тега, либо в их CSS”

Я думаю, что я помню, как я работал с таким веб-сайтом: IP-адрес был представлен внутренне через несколько элементов HTML, некоторые из них были скрыты с помощью display: none стиль, некоторые из них имели соответствующий класс CSS, который делал их невидимыми. Получить реальный IP-адрес из этого беспорядка через BeautifulSoup было довольно сложно.

Хорошая новость заключается в том, что selenium действительно обрабатывает этот прецедент и всякий раз, когда вы получаете .text из WebElement – он возвращает вам видимый текст элемента, который именно то, что нужно.

Демо-версия:

 In [1]: from selenium import webdriver In [2]: driver = webdriver.Firefox() In [3]: driver.get("http://proxylist.hidemyass.com/") In [4]: for row in driver.find_elements_by_css_selector("section.proxy-results table#listable tr")[1:]: ...: cells = row.find_elements_by_tag_name("td") ...: print(cells[1].text.strip()) ...: 101.26.38.162 120.198.236.10 213.85.92.10 ... 216.161.239.51 212.200.111.198 
  • Scrapy Очень простой пример
  • Пропустите очищенные URL от одного паука к другому
  • как обслуживать загружаемый zip-файл в django
  • Как получить значения параметров запроса get в колбе?
  • Использование селена с python для извлечения javascript-сгенерированного HTML? Firebug?
  • Как я могу получить весь текст с сайта Scrapy?
  • щелчок по ссылке через selenium в python
  • Как заставить Scrapy отображать пользовательский агент для каждого запроса на загрузку в журнале?
  • Запросы lxml на repl.it
  • разбор нескольких страниц без изменения адреса URL
  • Поиск элемента внутри элемента с использованием Selenium Webdriver
  • Python - лучший язык программирования в мире.