Нужно спарсить одну ссылку BeautifulSoup

Нужно спарсить из конкретного div-а только одну ссылку:

<div class="submenu_username" style="display: none;" data-submenuid="username">
   <a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/home/">Активность</a>
   <a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/">Профиль</a>
   <a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/friends/">Друзья</a>
   <a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/groups/">Группы</a> 
   <a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/screenshots/">Контент</a> 
   <a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/badges/">Значки</a> 
   <a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/inventory/">Инвентарь</a>
</div>

Нужна ссылка "профиль". Пытаюсь вот так сделать, нахожу этот див

soup = bs(r.text, 'html.parser')
submenu = soup.find('div', class_="submenu_username")

а дальше всё, ступор: не пойму как именно спарсить одну ссылку?


Ответы (1 шт):

Автор решения: Jack_oS
from bs4 import BeautifulSoup as bs

html = '<div class="submenu_username" style="display: none;" data-submenuid="username"><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/home/">Активность</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/">Профиль</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/friends/">Друзья</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/groups/">Группы</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/screenshots/">Контент</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/badges/">Значки</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/inventory/">Инвентарь</a></div>'
soup = bs(html, 'html.parser')

submenu = soup.find('div', class_="submenu_username")

если нужна только первая ссылка:

first_link = submenu.find('a')['href']

или все ссылки из submenu:

links = submenu.find_all('a')
for link in links:
    print(link['href'])

или сразу в список:

links_list = [link['href'] for link in submenu.find_all('a')]

и брать из него хоть первую, хоть вторую, хоть от третьей...:

>>> print(links_list[1])  # вторая
https://steamcommunity.com/profiles/76561198289451573/

>>> print(links_list[2:])  # от третьей
['https://steamcommunity.com/profiles/76561198289451573/friends/', 'https://steamcommunity.com/profiles/76561198289451573/groups/', 'https://steamcommunity.com/profiles/76561198289451573/screenshots/', 'https://steamcommunity.com/profiles/76561198289451573/badges/', 'https://steamcommunity.com/profiles/76561198289451573/inventory/']

>>> print(links_list[-1])  # последняя
https://steamcommunity.com/profiles/76561198289451573/inventory/
→ Ссылка