Извлечь имена идентификаторов DIV, найденные в определенном, содержащем DIV, используя Python

0

Я использую lxml для извлечения данных из страницы с помощью xpath. Все идет нормально. Но у меня есть новая задача:

Я должен извлечь все идентификаторы div в содержащем DIV и передать эти имена идентификаторов в список. Я предполагаю, что могу использовать Beautiful Soup для этого (или, возможно, также lxml). Я просто не уверен, как это сделать:

Например, мне пришлось бы извлечь "маяк" и "чечевицу":

    <div id="live-events">

       <div class ="events" id="beacon"> 
           ....other things...
       </div>

       <div class="events" id ="lentil">
          ....other things...
       </div>

    </div>

Предложения?

Благодарю!

Теги:
xpath
web-scraping
python-2.7

1 ответ

0
Лучший ответ

Это очень просто:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup("""
...     <div id="live-events">
... 
...        <div class ="events" id="beacon"> 
...            ....other things...
...        </div>
... 
...        <div class="events" id ="lentil">
...           ....other things...
...        </div>
... 
...     </div>
... """)
>>> live_events = soup.find(id="live-events")
>>> ids = [div["id"] for div in live_events.find_all("div")]
>>> ids
[u'beacon', u'lentil']
  • 0
    Спасибо! Работает как шарм, и я узнал что-то новое.
  • 0
    Извините, последнее. Как бы я использовал это с запросами, а не переменную с необработанным HTML? В настоящее время я руководствуюсь этим: docs.python-guide.org/en/latest/scenarios/scrape
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню