.find_all
, который вы использовали в
events_elems = results.find_all('ul', class_='searchResults')
, не захватывал все отдельные строки с веб-сайта, т. Е. Вам необходимо ужесточить критерии поиска.
event_elem.find('li', class_='date-indicator')
вы используется также недостаточно, поскольку он не захватывает дату каждого отдельного события.
См. следующий рабочий код, который захватывает набор результатов в контейнере списка событий:
import requests
from bs4 import BeautifulSoup
URL = "https://www.meetup.com/find/events/"
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find(id='simple-view')
event_container = results.find_all('ul', class_='event-listing-container')[0]
events_elems = event_container.find_all(class_= 'event-listing')
for event_elem in events_elems:
location_elem = event_elem.find('div', class_='text--labelSecondary')
e_elem = event_elem.find('a', class_='event')
date = "{}-{}-{} {}".format(
event_elem.attrs['data-year'],
event_elem.attrs['data-month'],
event_elem.attrs['data-day'],
event_elem.find('time').text.replace('\n', ''),
)
print(date)
print(location_elem.text)
print(e_elem.text)
print('-----')
с выходом образца
2020-2-17 9:00AM
Architecting for Innovation
Australasian Enterprise Architecture Summer School 2020
-----
2020-2-17 5:00PM
Sydney Indoor Rock Climbers
Monday and Thursday Night Climbing @ St Peters (Beginners Welcome)
-----
2020-2-17 5:30PM
......
......