Я очищаю интерфейс веб-страницы и испытываю трудности с получением текста HMTL для div внутри div.
По сути, я имитирую клики - по одному на каждое событие, указанное на странице.Оттуда я хочу очистить дату и время события, а также местоположение события.
Вот пример одной из страниц, которые я пытаюсь очистить:
https://www.bandsintown.com/e/1013664851-los-grandes-de-la-banda-at-aura-nightclub?came_from=257&utm_medium=web&utm_source=home&utm_campaign=event
<div class="eventInfoContainer-54d5deb3">
<div class="lineupContainer-570750d2">
<div class="eventInfoContainer-9e539994">
<img src="assets.bandsintown.com/images.clock.svg">
<div>Sunday, April 21st, 2019</div> <!––***––>
<div class="eventInfoContainer-50768f6d">5:00PM</div><!––***––>
</div>
<div class="eventInfoContainer-1a68a0e1">
<img src="assets.bandsintown.com/images.clock.svg">
<div class="eventInfoContainer-2d9f07df">
<div>Aura Nightclub</div> <!––***––>
<div>283 1st St., San Jose, CA 95113</div> <!––***––>
</div>
Я пометил элементы, которые хочу извлечь, звездочками - дату, время, место и адрес.Вот мой код:
base_url = 'https://www.bandsintown.com/?came_from=257&page='
events = []
eventContainerBucket = []
for i in range(1, 2):
driver.get(base_url + str(i))
# get events links
event_list = driver.find_elements_by_css_selector('div[class^=eventList-] a[class^=event-]')
# collect href attribute of events in even_list
events.extend(list(event.get_attribute("href") for event in event_list))
# iterate through all events and open them.
for event in events:
driver.get(event)
uniqueEventContainer = driver.find_elements_by_css_selector('div[class^=eventInfoContainer-]')[0]
print "Event information: "+ uniqueEventContainer.text
Это печатает:
Event information: Sunday, April 21st, 2019
3:00 PM
San Francisco Brewing Co.
3150 Polk St, Sf, CA 94109
View All The Fourth Son Tour Dates
Моя проблема в том, что я не могу получить доступ к вложенным элементам div EventInfoContainer по отдельности.Например, div 'date' - это позиция [1], так как это второй элемент (после img) в его родительском div "eventInfoContainer-9e539994".Родительский div "eventInfoContainer-9e539994" находится в положении [1], если он также является вторым элементом в его родительском div "eventInfoContainer-54d5deb3" (после "lineupContainer).
По этой логике я не долженбыть в состоянии получить доступ к тексту даты по этому коду: (получая доступ к 1-му элементу позиции, с его родителем, являющимся 1-м элементом позиции, внутри контейнера (0-й элемент позиции)?
for event in events:
driver.get(event)
uniqueEventContainer = driver.find_elements_by_css_selector('div[class^=eventInfoContainer-]')[0][1][1]
Я получаю следующееошибка:
TypeError: 'WebElement' object does not support indexing
Любая помощь приветствуется! Заранее спасибо.