我正在抓取网页的前端,并且难以在 div 中获取 div 的 HMTL 文本。
基本上,我正在模拟点击——页面上列出的每个事件都有一个。从那里,我想抓取事件的日期和时间,以及事件的位置。
这是我试图抓取的页面之一的示例:
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
我的问题是我无法单独访问嵌套的 eventInfoContainer div。例如,“日期”div 是位置 [1],因为它是其父 div“eventInfoContainer-9e539994”中的第二个元素(在 img 之后)。父 div“eventInfoContainer-9e539994”位于位置 [1] 中,它同样是其父 div“eventInfoContainer-54d5deb3”中的第二个元素(在“lineupContainer”之后)。
按照这个逻辑,我不应该能够通过这段代码访问日期文本吗:(访问第一个位置元素,它的父元素是容器内的第一个位置元素(第 0 个位置元素)?
冉冉说
叮当猫咪
相关分类