Я собираю данные о занятиях фитнесом и записываю их в CSV-файл. На веб-странице я пытаюсь почистить название класса, описание, адрес, контактный номер, веб-сайт и социальные ссылки. Я использую BeautifulSoup
и Selenium
.
Вот ссылка на страницу: https://classpass.com/classes/stretch-london-ada-street/strong-flow-yoga/322325148#tabs? Search-id = 40447186987779531
Элементы выглядят как это:
<a class="_2MTzNd_HEKWjVL824SA9Li" href="https://instagram.com/stretch_london"
Это одинаково для всех разных социальных сетей, с той лишь разницей, что URL-адрес внутри элемента.
Я смог использовать метод ниже, чтобы получить другие не href данные, которые я хочу со страницы, т.е. имя класса, описание и т. д. c. и напишите в csv:
try:
class_name = classses_soup.find('span', {'data-component': 'LocalizableMessage'}).text
except (AttributeError, TypeError,) as e:
pass
Однако я не могу получить ссылки href, я думаю, потому что они все являются идентичными элементами? Так, например, приведенный ниже код не работает - приведенная ниже выдержка предназначена для ссылки на Instagram, но у меня есть идентичная строка кода для facebook и twitter:
try:
instagram = classses_soup.find('a', {'class': '_2MTzNd_HEKWjVL824SA9Li'}).a.href
except (AttributeError, TypeError, IndexError,) as e:
pass
Это дает следующую ошибку:
NameError: name "class_wesbite" is not defined
Что я делаю не так и как я могу заставить свой код очищать каждую ссылку, чтобы я мог писать в csv, как это происходит с другими элементами?