@activebomb

Как спарсить не первую ссылку, а все ссылки из кода?

Проблема вот в чём:
def bf_parse(base_url, headers):
    session = requests.session()
    request = session.get(base_url, headers=headers)
    if request.status_code == 200:
        soup = bs(request.content, 'html.parser')
        divs = soup.find_all('div', attrs=('forum-user-name'))
        for div in divs:
            users = soup.find('div', {'class': 'forum-user-name'}).find('a').get('href')
            print(users)
        else:
            print('ERROR')

bf_parse(base_url, headers)


Вот сам код, он парсит с страницы ссылки на пользователей, но он парсит только одну, первую ссылку, что с этим делать я не знаю, пробовал вместо find - find_all, тоже не помогло.
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
Zraza
@Zraza
Помог ответ? Отметь решением!
Похоже, косяк в логике вот в этой строчке
users = soup.find('div', {'class': 'forum-user-name'}).find('a').get('href')

Здесь ищется первый подходящий div.forum-user-name на всей странице, а надо искать только в том блоке, по которому итерируемся.
Точно решения не подскажу, языка не знаю
Наверное, что-то вроде
users = div.find('a').get('href')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы