Я пытаюсь очистить ссылки с веб-сайта с помощью следующего кода:
from bs4 import BeautifulSoup
import requests
def get_links(url):
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
link = soup.find('a', class_="eds-media-card-content__action-link")
print("Link attributes:", link.attrs)
for k, v in link.attrs.items():
print(k, v)
print("Link: ", link.attrs['href'])
get_links("https://www.eventbrite.com/d/online/all-events/?page=1")
Вывод следующего кода:
Link attributes: {'tabindex': '-1', 'href': 'https://www.eventbrite.com/e/livestream-jon-kabat-zinn-cultivating-mindfulness-at-this-critical-time-tickets-101254729622?aff=ebdssbonlinesearch', 'class': ['eds-media-card-content__action-link'], 'aria-label': 'See more of Livestream Jon Kabat-Zinn: Cultivating Mindfulness at this Critical Time'}
tabindex -1
href
class ['eds-media-card-content__action-link']
aria-label See more of Livestream Jon Kabat-Zinn: Cultivating Mindfulness at this Critical Time
Link:
Как видно Атрибут href не пуст в вышеприведенном словаре, но когда я пытаюсь получить к нему доступ, возвращается пустая строка. Что я делаю не так?
Редактировать: проблема была решена (частично). Я запускал его на ноутбуке jupyter на своем p c, и ссылка не отображалась. Но когда я помещаю его в файл .py и запускаю, отображается ссылка. Все еще не знаю причину такого поведения ноутбука Jupyter.