@vikholodov

Почему не хочет работать метод find_all в BeautifulSoup?

def get_freelance_list(html):
    soup = BeautifulSoup(html, "lxml")
    container = soup.find('table', class_='catalog-freelancers')
    frelancer = container.find_all('a', class_='freelancer-name').get('href')
    frelancer_link = 'https://www.fl.ru/' + frelancer
    return frelancer_link

Все вроде бы очень просто, нашел таблицу, в ней ищи все ссылки с тем-то классом, но нифига. Если вместо find_all поставить find, то одну ссылку он без проблем находит. В чем может быть дело?
Ошибка
"ResultSet object has no attribute '%s'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?" % key
AttributeError: ResultSet object has no attribute 'get'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?
  • Вопрос задан
  • 8159 просмотров
Решения вопроса 1
ResultSet object has no attribute 'get'. You're probably treating a list of items like a single item

Само сообщение об ошибке говорит, что не так. Ты вызываешь метод get в объекте, в котором этого метода нет. Ты пытаешься из коллекции (списка) тегов достать какой-то href. Вместо этого тебе нужно пройтись циклом по коллекции, которую возвращает find_all, и из каждого элемента (тега) отдельно достать ссылку из атрибута href. Обычный find работает для тебя потому, что он возвращает один элемент (тег).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы